首页 > 解决方案 > 根据图像大小将画布添加到高度或宽度

问题描述

对 Imagemagick 有以下问题(或其他可行的解决方案)

案例:在上传到我的网上商店之前,我使用 Photoshop 裁剪图像。我们出售例如裤子。我自动剪掉了它们,所以空白被删除了,我得到了只有裤子的漂亮图像。问题是该图像的宽度可能低于 250 像素。谷歌希望这些图片在谷歌购物时的最小尺寸为 250x250。

所以我寻找以下解决方案:

在我的 linux 网络服务器上搜索高度或宽度低于 250 像素的子目录中的图像。将画布大小添加到高度或宽度(居中),使最小宽度或高度为 250 像素。

什么是最好的(也是最快的)解决方案?我有很多图片.. :-)

谢谢,

人力资源部

==

编辑:清除:

  1. 旧尺寸(示例 1):180x900 - > 新尺寸 250 x 900。
  2. 旧尺寸(示例 2):900x240 - > 新尺寸:900 x 250。

所以我不想要一个正方形的 250x250 图像。最低点必须是最小宽度或高度为 250px

我使用 .jpg 的图像,并且图像应该被覆盖。

谢谢!

标签: linuxcanvasimagemagick

解决方案


这个使用 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 对其进行了测试,它似乎工作正常。


推荐阅读