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