我有一个1000x1000 300dpi图像,我需要转换为100x100 96dpi缩略图.我如何在ImageMagick中执行此操作?我追求尽可能最小的文件大小.
做这样的事情:
convert myimage.png -quality 100 -resize 100 PNG8:mynewimage.png
Run Code Online (Sandbox Code Playgroud)
....确实改变了维度,但仍保持着DPI.如果我可以将其更改为96dpi,我应该获得更小的文件大小.
我试过-density等等,但似乎无法使它们适合我.也许我把命令放错了顺序或传递了错误的参数.非常感谢任何帮助.谢谢.
简短的版本是,如果你想要一个PNG格式的100x100图像,那么你所拥有的那条线就能以最小的文件大小为你提供最好的质量.如果没有a)编码为有损格式(JPEG)或b)减少图像的颜色深度,则不能做得更好.
对于稍微长一点的解释,直接来自维基百科:"每英寸点数(DPI)是空间打印或视频点密度的度量,特别是可以放置在1英寸(2.54)范围内的一行中的单个点的数量cm).DPI值倾向于与图像分辨率相关,但只是间接相关."
DPI与获得较小的文件大小无关; 您的100x100图像尺寸为100x100 像素,无论您是在300dpi屏幕还是96dpi屏幕上看到它(在300dpi屏幕上它看起来都会更小).信息量无论哪种方式都是相同的.
"-density"也无济于事,因为它只适用于"在渲染(读取)矢量格式(如Postscript,PDF,WMF和SVG)时将栅格图像编码为光栅图像".这些格式与分辨率无关,因此告诉ImageMagick您希望图像光栅化的DPI是有意义的.但是,您的DPI应该是您计划使用的输出设备的函数.在您的情况下,由于您是从已经光栅化的图像开始的,因此没有用处.
PNG是一种无损格式,因此-quality参数仅控制zlib压缩级别; 图像尺寸的任何增加都是最小的,但值得使用.