Kur*_*fle 21
我的 ImageMagick 版本是“6.7.8-0 2012-07-04 Q16”。根据文档,@kev 命令的答案应该有效:
convert in.png -gravity east -extent 520x352 out.png
Run Code Online (Sandbox Code Playgroud)
但是,与大多数 ImageMagick 问题一样,您可以通过不同的方式实现相同的目标。你可以这样使用montage:
montage null: in.png -tile 2x1 -geometry +17+0 out1.png
Run Code Online (Sandbox Code Playgroud)
这使用特殊的 'null:' 图像将其与in.png.
确实,convert您需要重新计算需要-extent为每个具有不同大小的输入图片传递的值。
首先使用identify -format获取图像的尺寸:
identify -format '%Wx%H' in.png
Run Code Online (Sandbox Code Playgroud)
这应该返回如下内容:
449x352
Run Code Online (Sandbox Code Playgroud)
好的,现在您需要添加您想要的 71 像素,以获得最终520x352值。但是您不需要在自己的大脑中进行计算:
ImageMagick 来救援!,及其神奇的计算能力...... :-)
您可以告诉identify -format命令为您进行计算:
identify -format '%[fx:W+71]x%H'
Run Code Online (Sandbox Code Playgroud)
这现在应该给你一个结果:
520x352
Run Code Online (Sandbox Code Playgroud)
因此,假设您只想在任何图片的左侧填充/添加 71 像素宽度的“白色条带”,您可以使用以下单个命令行:
convert \
in.png \
-gravity east \
-background white \
-extent $(identify -format '%[fx:W+71]x%H' in.png) \
out2.png
Run Code Online (Sandbox Code Playgroud)
瞧!一个命令行(它封装了 2 个命令,老实说),你可以让这个在你所有的 PNG、JPEG、GIF ......在一个目录中自动添加你的 71pixels 白色条带到每个:
for i in *.png *.jpeg *jpg *.gif; do
convert \
${i} \
-gravity east \
-background white \
-extent $(identify -format '%[fx:W+71]x%H' ${i}) \
$(convert ${i} -format "71-pixels-padded-left---%t.%e" info:)
done
Run Code Online (Sandbox Code Playgroud)
对于每个图像,其输出保持相同的文件类型。当然,您可以强制所有输出为 PNG(或任何您想要的格式)。只需将%t.%e命令的一部分替换为%t.png...
文档:http : //www.imagemagick.org/Usage/crop/#extent
convert in.png -gravity east -extent 500x352 out.png
Run Code Online (Sandbox Code Playgroud)
小智 9
由于我不希望图像与右侧齐平,因此我不得不使用不同的方法(ImageMagick 的composite工具):
convert -size 500x500 xc:white canvas.png
convert canvas.png in.png -geometry +200+200 -composite out.png
Run Code Online (Sandbox Code Playgroud)
-size应该是你想要的最终图像大小,canvas.png是一个空白的白色画布,in.png是你想要填充的图像,-geometry是定位偏移量。
| 归档时间: |
|
| 查看次数: |
17191 次 |
| 最近记录: |