如果您想将图像缩小到250x200像素(不保持宽高比),完全填充250x200的空间(必要时拉伸/扭曲图像),请使用以下代码:
convert \
input.jpeg \
-scale 250x200\! \
output1.png
(注意在比例尺几何设置后面的 \!
字符!)
将.jpeg
和.png
后缀替换为您所拥有和想要的任何格式后缀,ImageMagick 将自动处理它。
如果您想缩小图像并将其适应到 250x200 像素内,并保持原始图像的长宽比(高度与宽度的比率),并且裁剪未使用的 250x200 像素中的那个维度,请使用:
convert \
input.jpeg \
-scale 250x200 \
output2.png
默认情况下,-resize
参数中给定的宽度和高度是最大值(除非您将其指定为百分比)。这意味着: 输出图像会扩展或缩小以适应指定的尺寸,并保持图像的纵横比。以下命令“尝试”将尺寸设置为250x200:
当高度从原来的1200像素缩小到200像素时(占原始值的16.6666%),宽度现在为266.66像素。所以它还不符合要求....
当宽度从原来的1600像素缩小到250像素时(占原始值的15.625%),高度现在为187.5像素。所以它现在符合要求,并且可以在顶部和底部留下一些空间。
因此,最终的尺寸将是250x187或更可能是250x188像素(在高度上无法有像素分数,需要使用整数!)。
如果您想将大小缩小到在250x200像素内,并保持原始图像的纵横比,并创建一个完整的250x200像素大小的图像,通过添加一些黄色背景使真实图像在该空间中居中显示,请使用:
convert \
input.jpeg \
-scale 250x200 \
-gravity center \
-background yellow \
-extent 250x200 \
output3.png
更改背景颜色为你喜欢的其他颜色,或使用none
设置透明背景(不支持JPEG输出!)。
如果您想将图像按比例缩小到250x200像素并完全填充250x200的空间(但不裁剪任何溢出),请使用以下代码:
convert \
input.jpeg \
-scale '250x200^' \
output4.png
(注意,在设置比例尺几何图形后,加上了^
字符。这个^
特性需要ImageMagick版本至少为6.3.8-2 )
当使用-scale
或-resize
参数并添加^
时,修改宽度和高度的值将被视为最小值,只有其中一个维度达到指定的值。这意味着:输出图像会扩展或收缩,直到宽度或高度与其指定的维度匹配,并保持图像的纵横比。
下面的命令“尝试”将尺寸设置为250x200:
当高度从原始1200像素缩小到200像素(仅为原始值的16.6666%)时,所需的缩放效果就已实现。此时宽度为266.66像素。四舍五入后为267像素。
因此,最终的尺寸将是267x200像素。
如果要将图像缩放到250x200像素并保持其纵横比,完全填充250x200的空间(从左侧和右侧边缘裁剪掉条纹),请使用:
convert \
input.jpeg \
-scale '250x200^' \
-gravity center \
-extent 250x250 \
output5.png
最终图像的尺寸将为250x200。与之前的命令相比(得到了一个250x267的结果),左右两侧的一些像素列将被移除。
被采纳的答案并没有满足问题的要求。
如果您需要精确的输出尺寸(例如250x200),请使用以下命令:从原始图像中提取最大信息,并裁剪多余部分以保持纵横比,然后使用以下命令:
convert input.jpg -scale "250x200^" -gravity center -crop 250x200+0+0 output.jpg
-crop
从图像中剪切出一个或多个矩形区域。-extent
设置图像大小(如果给定,则设置图像偏移量),如果图像被放大,则未填充的区域将设置为当前背景颜色。这两个选项都可以使用比当前图像更大或更小的尺寸,但这看起来有点违反直觉:将“裁剪”到更大的区域,或将“扩展”到更小的区域。 - Kurt Pfeifle-crop
通常需要额外的+repage
参数:(1)在裁剪之前,将裁剪坐标框架重新定位到当前可见图像的左上角;(2)或者在裁剪之后,删除可能留下的页面偏移量。 - Kurt Pfeifle