(回答已更新,下面提供了-liquid-rescale
的图示示例)
您原始图片的尺寸为:
489 x 640 pixels
您所需的尺寸似乎是:
290 x 310 pixels
如果不进行以下操作之一,就无法将其缩放到这些尺寸:
- 裁剪(不保留初始图像的所有区域)
- 保持所需宽度(放弃所需高度)
- 保持所需高度(放弃所需宽度)
- 失真(缩放时不保持纵横比)
- 填充(在一个或多个边缘添加更多像素)
- 删除不明显的像素("液态调整"或"缝合雕刻" — 见维基百科)
您的结果显示了“1.”(裁剪),您不喜欢。因此,您还可以测试“2.”(保持宽度)、“3.”(保持高度)、“4.”(失真)、“5.”(填充)和“6.”(缝合雕刻)等选项。
'2.':保持所需高度
convert WPTgp.jpg -resize x310 keep-height.jpg
生成的图像尺寸为237 x 310像素
。
保持高度...
![保持高度](https://istack.dev59.com/z10pG.webp)
(自动确定宽度)
'3.': 保持所需宽度
convert WPTgp.jpg -resize 290x keep-width.jpg
生成的图像尺寸为290 x 380 像素
。
保持宽度.....
![保持宽度](https://istack.dev59.com/exfNK.webp)
(自动确定高度)
'4.': 畸变
convert WPTgp.jpg -resize 290x310\! distorted.jpg
生成的图像尺寸为290 x 310像素
。
扭曲......
![扭曲](https://istack.dev59.com/R0vfb.webp)
(忽略纵横比-如有必要,可扭曲图像以适应尺寸)
'5.': 填充
convert WPTgp.jpg \
-resize 290x310 \
-gravity center \
-background orange \
-extent 290x310 \
padded.jpg
生成的图像尺寸为290 x 310像素
。(橙色背景仅用于演示图像的“扩展”已经起作用。)
填充.........
![填充](https://istack.dev59.com/19Qhu.webp)
(保持长宽比--扩展图像以达到所需尺寸)
'6.': 接缝剪裁
convert WPTgp.jpg -liquid-rescale 290x310\! liquid.jpg
上述命令是你从快速阅读ImageMagick命令选项参考手册中推导出的。然而,它并不有效,相反我使用了:
convert WPTgp.jpg -liquid-rescale 599x640\! -scale 290x310 liquid.jpg
convert WPTgp.jpg -liquid-rescale 599x640\! -scale 48.4% liquid.jpg
以下是我需要修改它的原因的解释...
Liquid-rescaled
!['Liquidly' rescaled](https://istack.dev59.com/ck2qp.webp)
抱歉 - 我现在无法提供示例图片;这需要安装额外的ImageMagick代理liblqr
(液态缩放库),而我目前没有安装) 现在我有机会创建原始图像的“液态缩放”版本。
关于Seam Carving / '-liquid-rescale'的注意事项:
如上所述,最后的图像不是我最初建议的命令结果,而是这两个修改版本之一:
convert WPTgp.jpg -liquid-rescale 599x640\! -scale 290x310 liquid.jpg
convert WPTgp.jpg -liquid-rescale 599x640\! -scale 48.4% liquid.jpg
请记住,我们有一张原始图像大小为489x610像素,需要缩放到290x310像素。但是-liquid-rescale
不擅长同时在两个维度上进行缩放--它只能在一个方向上进行缩放(水平或垂直)。如果您尝试同时进行两个方向的缩放,结果可能不如您所期望。以下是最初建议的命令的结果:
convert WPTgp.jpg -liquid-rescale 290x310\! liquid.jpg
LQR出现问题
这就是我提出的两个修改后的命令,分为两步:
- 首先,仅对水平维度应用液体缩放,将原始图像的宽度从489像素扩展到599像素。
- 其次,对中间结果应用“正常”的宽高比保持缩放以生成最终图像。