ens*_*are 11 imagemagick imagemagick-convert
例如,如果我有1600x1200的大图像,但我想生成250x200(高度和宽度的不同比例)的缩略图 - 我如何将其缩小到大小然后将其裁剪为中心?这可能在一行使用转换?
Kur*_*fle 22
如果要缩小至250x200像素(不保持纵横比),请完全填充250x200的空间(如有必要,拉伸/扭曲图像),请使用:
convert \
input.jpeg \
-scale 250x200\! \
output1.png
Run Code Online (Sandbox Code Playgroud)
(注意\!刻度几何设置后的字符!)
用你想要的任何格式后缀替换.jpeg和.png后缀,ImageMagick将自动处理它.
如果要缩小到250x200像素内部,同时保持原始图像的纵横比(高度与宽度之比)并裁剪未用完的250x200像素尺寸,请使用:
convert \
input.jpeg \
-scale 250x200 \
output2.png
Run Code Online (Sandbox Code Playgroud)
默认情况下,-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
Run Code Online (Sandbox Code Playgroud)
用你喜欢的任何其他颜色替换背景颜色,或用none透明背景替换背景颜色(不支持JPEG输出!).
如果你想保持宽高比缩放到250x200像素,完全填充250x200的空间(但不能裁掉任何溢出),请使用:
convert \
input.jpeg \
-scale '250x200^' \
output4.png
Run Code Online (Sandbox Code Playgroud)
(注意^缩放几何设置后的字符.该^特征需要最小的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
Run Code Online (Sandbox Code Playgroud)
图像的最终尺寸为250x200.与前一个命令(给出250x267结果)相比,左右边缘的一些像素列被删除.
| 归档时间: |
|
| 查看次数: |
5019 次 |
| 最近记录: |