我正在使用以下语法执行Image Magick的转换命令:
magick convert -units pixelsperinch image2.jpg -density 600 out.png
但是没有得到任何结果。如何不使用magick来执行convert命令。
答案 0 :(得分:0)
如果要在文件中设置值,则需要使用-set
:
convert image2.jpg -set density 600 -set units pixelsperinch out.png
现在检查我们得到了什么:
identify -verbose out.png | grep -Ei "units|resolution"
Resolution: 236.22x236.22
Units: PixelsPerCentimeter
png:pHYs: x_res=23622, y_res=23622, units=1
我不确定我有什么好方法可以解释何时需要-set
,何时不需要。我会尽力的,如果有人可以改进的话,我会写下改进之处。
我们来看一个示例,例如-size
。这是一个“设置” ,这意味着它只是更改并记住内部设置或值,直到命令结束或设置的值有所不同为止,但不会更改任何现有图像。所以,如果我这样做:
convert -size 1024x768 ...
它会设置大小并记住它,如果我随后使用xc:blue
或类似的东西,则会按照您期望的大小来创建画布。
但是,如果我这样做:
convert -size 1024x768 xc:blue ... -size 10x10 ...
-size 10x10
并没有真正改变现有的1024x768蓝色画布的大小,只是记住以后创建的所有画布都应该是10x10。
因此,-density
和-units
的工作方式与上述设置相同。
现在让我们看一下-set
。这是“操作员” ,而不是“设置” 。当您使用“ operator” 时,它将立即将该操作应用于当前加载的所有图像-并可能更改当前加载的所有图像。因此,-resize
是“操作员” 的另一个示例。使用它时,它将立即调整所有已加载图像的大小。
所以,如果我这样做:
convert image1.jpg image2.jpg -resize 800x600 image3.jpg ...
它将立即将image1.jpg
和image2.jpg
的大小调整为800x600,但不影响image3.jpg
。
现在该教程结束了,您可以希望看到想要更改/更改加载的图像,因此您需要使用“ operator” 而不是“ setting” < / em>。