cyt*_*dan 5 imagemagick image-resizing
我正在尝试使用 ImageMagick 调整各种图像的大小。我要求在单个命令中完成此操作,并且不支持额外的语言。
我想将低于特定宽度的所有图像调整为 115%(或等效值:将所有图像调整为特定尺寸,同时将最大放大率限制为原始图像的 115%)。
我试过混合不同的选项,但似乎不受支持。
这甚至可能吗?
我使用distort运算符作为可能的解决方案:
convert in.jpg +distort srt "%[fx:(w<1600)?1.15:1] 0" out.jpg
Run Code Online (Sandbox Code Playgroud)
但是当扭曲图像 > 1600 像素时,它仍然会执行操作并以略有不同的像素数重写图像。
使用现有系统的命令以及convert评估高级逻辑可能会更容易。
例如,我将利用测试实用程序
test $(identify -format "%[fx:(w<1600)?1:0]" in.jpg) -eq 1 && \
convert in.jpg -resize 115% out.jpg
Run Code Online (Sandbox Code Playgroud)
在ImageMagick 7中,将引入该选项-exit,因此如果不满足条件,则可以终止 ImageMagick 命令。
更新
仿射失真可能是更好的方法。由于以下仿射矩阵不会改变图像
| 1 0 0 |
| 0 1 0 |
| 0 0 1 |
Run Code Online (Sandbox Code Playgroud)
但以下将调整大小 115%
| 1.15 0 0 |
| 0 1.15 0 |
| 0 0 1 |
Run Code Online (Sandbox Code Playgroud)
| 1 0 0 |
| 0 1 0 |
| 0 0 1 |
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2552 次 |
| 最近记录: |