linux - 根据图像大小将画布添加到高度或宽度
问题描述
对 Imagemagick 有以下问题(或其他可行的解决方案)
案例:在上传到我的网上商店之前,我使用 Photoshop 裁剪图像。我们出售例如裤子。我自动剪掉了它们,所以空白被删除了,我得到了只有裤子的漂亮图像。问题是该图像的宽度可能低于 250 像素。谷歌希望这些图片在谷歌购物时的最小尺寸为 250x250。
所以我寻找以下解决方案:
在我的 linux 网络服务器上搜索高度或宽度低于 250 像素的子目录中的图像。将画布大小添加到高度或宽度(居中),使最小宽度或高度为 250 像素。
什么是最好的(也是最快的)解决方案?我有很多图片.. :-)
谢谢,
人力资源部
==
编辑:清除:
- 旧尺寸(示例 1):180x900 - > 新尺寸 250 x 900。
- 旧尺寸(示例 2):900x240 - > 新尺寸:900 x 250。
所以我不想要一个正方形的 250x250 图像。最低点必须是最小宽度或高度为 250px
我使用 .jpg 的图像,并且图像应该被覆盖。
谢谢!
解决方案
这个使用 ImageMagick 的“mogrify”的命令将遍历当前目录中的所有 *.jpg 图像,并根据需要将每个图像以白色填充居中,以使最小尺寸为 250 像素宽和高。超过 250 像素的尺寸保持不变。
mogrify -virtual-pixel white \
-set option:distort:viewport "%[fx:max(w,250)]x%[fx:max(h,250)]" \
-distort affine "0,0 %[fx:250>w?(250-w)/2:0],%[fx:250>h?(250-h)/2:0]" *.jpg
这计算出视口的必要尺寸在两个方向上至少为 250 像素。然后,只有当图像以某种方式小于该视口时,它才会将图像向上或向下滑动,或两者兼而有之,以使其在现在放大的视口中居中。虚拟像素设置确保填充为白色。
它将覆盖输入图像,因此请谨慎使用。
您可能希望包含“-quality 100”以最大程度地减少以 JPG 格式保存时发生的质量损失。
我在 Windows 中使用 IM7 处理了这个命令,但是这个命令是 *nix 语法。我在 bash 中使用 IMv6.8.9 对其进行了测试,它似乎工作正常。