为什么将png-> jpg转换为原始尺寸?

时间:2016-02-19 18:13:52

标签: imagemagick

我有一个png,其宽度为2551像素,高度为3578像素。

在这个png上,我使用-crop的{​​{1}}选项剪切尺寸为2362 x 3389像素的图片:

convert

这可以按预期工作。

然后,我使用convert original_2551x3578.png -crop 2362x3389+94+94 crop_2362x3389.png 创建一个jpg:

convert

我希望这个命令可以生成一个尺寸相同的jpg(2362 x 3389)。令我惊讶的是,制作的jpg尺寸为2551 x 3578像素(与原始图像相同)。

因此,似乎原始大小与convert crop_2362x3389.png -format jpg -flatten -background white out.jpg 一起存储。

如何使用crop_2362x3389.png将png转换为jpg并使其保持convert的维度?

2 个答案:

答案 0 :(得分:1)

您看到这一点的原因是,当您进行初始裁剪时,图像"会记住" 它是较大图像的一部分,并且在该图像中它曾经用于是

如果您执行原始裁剪,然后运行identify并查看8-bit左侧的第4个字段,则可以看到此内容。

convert original_2551x3578.png -crop 2362x3389+94+94 crop_2362x3389.png

enter image description here

您还可以使用+repage告诉ImageMagick "忘记"

# Repage after changing geometry to forget earlier geometry
convert original_2551x3578.png -crop 2362x3389+94+94 +repage crop_2362x3389.png

# Check IM has forgotten image used to be a part of a bigger one
identify crop_2362x3389.png
crop_2362x3389.png PNG 2362x3389 2362x3389+0+0 8-bit sRGB 256c 15.1KB 0.000u 0:00.000

答案 1 :(得分:0)

好的,我找到了解决方案。 -crop参数后面的几何图形必须后跟!

convert original_2551x3578.png -crop 2362x3389+94+94! crop_2362x3389.png

这可以按预期工作。