ImageMagick:缩小图像大小

8
我正在使用ImageMagick来减小图像的分辨率、高度和宽度。
我注意到了一些事情。当我通过Photoshop(版本7)在“图像大小”中更改分辨率从300dpi到150dpi时,图像的高度和宽度会自动更改。
然而,使用ImageMagick时我没有得到这样的变化。例如,如果图像在300dpi下包含878个宽度和179个高度,当将其更改为150dpi时,图像的宽度自动更改为439,高度为89。
请问有人可以支持我如何通过ImageMagick获得这样的变化。
2个回答

10

如果要保持图像的显示大小不变,可以使用-resample选项来调整图像大小,操作如下:

$ convert original.jpg -resample 150x150 new.jpg

以你的例子为例,如果原始图像是300DPI的878x179像素, 则结果是150DPI的439x90像素图像:

$ file original.jpg
original.jpg: JPEG image data, JFIF standard 1.01, aspect ratio, density 300x300,
              segment length 16, baseline, precision 8, 878x179, frames 3
$ file new.jpg
new.jpg: JPEG image data, JFIF standard 1.01, aspect ratio, density 150x150,
         segment length 16, baseline, precision 8, 439x90, frames 3

您可以使用-density选项和-resize选项来达到相同的效果。
$ convert original.jpg -density 150x150 -resize 50%x50% new.jpg

总之:
  • -density 仅设置DPI元数据,而不更改底层图像;
  • -resize 更改图像大小而不更改DPI;
  • -resample 更改DPI并相应地调整图像大小。

用途

当您需要将图像打印或转换为PDF时,DPI元数据是相关的

现在,您可以将两个图像转换为PDF,并获得基本相同页面大小的文件:

$ convert original.jpg original.pdf
$ convert new.jpg new.pdf
$ pdfinfo original.pdf  | grep -a "Page size:"
Page size:      210.72 x 42.96 pts
$ pdfinfo new.pdf | grep -a "Page size:"
Page size:      210.72 x 43.2 pts

9

dpi设置在大多数图像应用/领域中并不是非常重要,除非你想要打印一张图片。

你真的需要设置它吗?我的意思是,如果你想将一张图片缩小一半,只需使用ImageMagick执行以下操作:

convert input.jpg -resize 50x50% output.jpg

忽略dpi。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接