【问题标题】:crop product images but keep product centered and image height/width the same (batch, linux, cli)裁剪产品图像但保持产品居中且图像高度/宽度相同(批处理、linux、cli)
【发布时间】:2017-02-14 08:37:25
【问题描述】:

我正在为打算在 WooCommerce 中销售的产品拍照。我才刚开始,现在我用三脚架和照片立方体把它们和我的手机一起带走。质量和灯光都很好。

现在看来,我无法将每张图像的三脚架距离保持相同,因此对象可能比其他对象略小或更大。

我想要的是一个使用 imagemagick 或 mogrify 之类的命令来(自动)裁剪图像,因此假设产品在现实生活中具有相似的尺寸,那么所有图像的实际对象的高度和宽度都是相同的好吧。

然后在对象周围添加一点空白,以便每个图像的高度和宽度相同。这样,Woocommerce 将在目录页面上很好地显示它们。

现在有点乱。某些产品在某个区域有太多空白,导致标题错位和页面整体外观不佳。

另外(好像我没有让它变得足够困难)重要的是,图像下方的空格对于所有图像必须相同,因为图像中的对象必须与其他对象保持水平旁边的对象。

我有 4200 张图片需要这个,我非常感谢任何帮助。我使用 debian,更喜欢批处理命令或应用程序。

【问题讨论】:

  • 看不到好几个坏的有点难...
  • 也许我可以简化我的目标。自动裁剪 > 在下面添加一定数量的空白 > 然后在左/右/上添加空白直到满足特定的图像尺寸。
  • 如果不看一些图片,不知道尺寸和某些你没有提供的东西,这有点困难。
  • 想象一下鞋子侧面的图像...鞋子的宽度在任何时候都几乎相同,尤其是在应用自动裁剪之后。我想我已经弄明白了,只需要测试一下。

标签: woocommerce debian imagemagick crop mogrify


【解决方案1】:

由于您没有提供图片,我在这里伪造了一张,带有黄色边框。我会按照你的要求做,但使用洋红色和青色,这样你就可以看到效果 - 所以你需要用白色替换这些颜色。

首先,修剪当前边框:

convert start.png -trim 1.png

现在在底部添加一个 100 像素的固定高度条:

convert 1.png -background magenta -gravity south -splice x100 2.png

现在将左侧、右侧和顶部填充,但不将底部填充到标准化尺寸:

convert 2.png -gravity south -background cyan -extent 500x500 3.png

当然,您可以一次性完成所有这些操作:

convert start.jpg -trim                            \
   -background magenta -gravity south -splice x100 \
   -gravity south -background cyan -extent 500x500 result.png

【讨论】:

  • 完美!非常感谢。这正是我所需要的。
  • 如果我想做自动裁剪(trim),然后只添加一个上下边框,这样每个鞋子和鞋子类型都是垂直对齐的,但每个图像的图像高度是一样的?
  • 试试convert input.png -fuzz 10% -trim -bordercolor red -border 0x50 result.jpg
  • 这看起来像我需要的,但我事先不知道边框大小,因为每个图像在修剪后都有不同的高度。我不能在保持对象居中的同时使用 -extent 来定义最大高度吗?
  • 请注意,无论对象尺寸如何,每个图像的总宽度和高度都是相同的。对于我拥有的所有 4000 多张图像,我需要一个批处理命令。您可以省略修剪,因为我的后台刻录机服务会修剪它们。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-03-11
  • 2019-06-29
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多