Imagemagick 为什么转换png->;jpg将图片放大到原始大小?

Imagemagick 为什么转换png->;jpg将图片放大到原始大小?,imagemagick,Imagemagick,我有一个png,它的宽度是2551像素,高度是3578像素 在这个png上,我使用convert的-crop选项来剪切尺寸为2362 x 3389像素的图像: convert original_2551x3578.png -crop 2362x3389+94+94 crop_2362x3389.png 这正是我们想要的 然后,我使用convert创建一个jpg: convert crop_2362x3389.png -format jpg -flatten -background white

我有一个png,它的宽度是2551像素,高度是3578像素

在这个png上,我使用
convert
-crop
选项来剪切尺寸为2362 x 3389像素的图像:

convert original_2551x3578.png -crop 2362x3389+94+94 crop_2362x3389.png
这正是我们想要的

然后,我使用
convert
创建一个jpg:

convert crop_2362x3389.png -format jpg -flatten -background white out.jpg
我希望这个命令能够生成一个具有相同维度(2362x3389)的jpg。令我惊讶的是,生成的jpg的尺寸为2551x3578像素(与原始图像相同)

因此,似乎原始大小是与
crop_2362x3389.png
一起存储的


如何使用
convert
将png转换为jpg,并使其保持
crop_2362x3389.png

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

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

这是预期的效果。

您看到这一点的原因是,当您进行初始裁剪时,图像会“记住”它是较大图像的一部分,以及它在该图像中的位置

如果进行原始裁剪,然后运行
identify
并查看第4个字段,即
8位
左侧,您可以看到这一点

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

您还可以通过如下方式使用
+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