and*_*.46 13
需要考虑的两件事:
我依次发言:
1.简单的调整大小有或没有纵横比转换
imagemagick
默认情况下,将在转换期间保持图像预先存在的纵横比。使用此测试图像:
它方便地具有 100x100 的尺寸,尝试使用此语法调整到 300x150 将无声地失败:
convert test.png -resize 300x150 300_test.png
Run Code Online (Sandbox Code Playgroud)
并将生成一个150x150 的图像:
要强制imagemagick
实际生成 2:1 纵横比图像,需要以下略有不同的语法:
convert test.png -resize 300x150\! distort.png
Run Code Online (Sandbox Code Playgroud)
这实现了 2:1 的纵横比,当然原始图像会失真:
2. 纵横比转换裁剪
如果您更喜欢简单地自动将图像裁剪为指定的纵横比,最简单的方法是使用Fred 的 ImageMagick 脚本之一: 'Aspectcrop'。在我们的测试图像上的用法很简单:
./aspectcrop -a 2:1 test.png Fred_wins.png
Run Code Online (Sandbox Code Playgroud)
并且生成的图像已成功裁剪为 2:1 的比例:
要操作的另一个选项是-g gravity
定义图像的哪一部分用于裁剪。默认为居中,所有选项为:
因此,举一个使用北的例子:
./aspectcrop -a 2:1 -g n test.png north.png
Run Code Online (Sandbox Code Playgroud)
结果是:
如果您需要使用此脚本在单个目录中批量加载图像,您可以使用 bash 'for' 循环。首先正确放置脚本并将其设置为可执行:
sudo mv aspectcrop /usr/local/bin
sudo chmod +x /usr/local/bin/aspectcrop
Run Code Online (Sandbox Code Playgroud)
这使得使用脚本变得更加容易。然后从图像目录中运行“for”循环:
for i in *.png
do
aspectcrop -a 2:1 -g n "$i" "${i%.png}_cropped.png"
done
Run Code Online (Sandbox Code Playgroud)
这个循环可以根据输入和输出文件的类型、不同的位置等而变化。您还可以生成类似的语法来递归搜索图像。很多可能性...
我认为这一切都很酷:)
参考:
归档时间: |
|
查看次数: |
5964 次 |
最近记录: |