0

我在一大组图像中有一些图像,这些图像具有围绕图像本身的白色(或黑色)边框。我怎样才能...

  1. 将图像裁剪为没有所述背景/边框的大小
  2. 调整图像大小以填充给定的输出大小居中。

例如,我有一个大小为 1280x1024 像素的上传图像,它有一个白色(或黑色)边框,内部尺寸为 800x700(可能未居中),我想裁剪该边框,然后调整大小以填充640x480 输出。这将有效地拍摄内部图像,然后填充 640x480,有效地从原始图像中裁剪出额外 100 像素的高度。


我更喜欢可以是带有图形魔法的批处理/shell脚本,但也可以通过phantomjs接受解决方案。如果可能的话,我宁愿避免使用其他工具/语言。

4

1 回答 1

3

修剪将根据角像素删除边框,

ExtentGravity将使图像具有一定的大小并相应地对齐,

另请参阅几何参数,

convert -trim source.png trim.png
convert -extent 800x600 -gravity center trim.png frame.png

在此处输入图像描述

以下是显示图像的尺寸:

  • 来源:722 x 480
  • 修剪:640 x 400
  • 画幅:800x 600

编辑

这将调整图像的大小以适合 800 像素宽,如果它更小,则使其高度为 600:

在此处输入图像描述

convert -resize 800x600^ -extent 800x600 -gravity center trim.png resize.png

有关所有详细信息,请参阅http://www.imagemagick.org/Usage/resize/#fill,特别是您应该测试它在肖像图像上的表现。

此外,如果您在resize参数中删除 800 ,它将适合其高度:

在此处输入图像描述

convert -resize x600^ -extent 800x600 -gravity center trim.png resize.png

编辑 2

您必须将插入符号与轴之一一起使用:

convert -resize 1200^ -extent 1200x600 -gravity center trim.png resize1.png

在此处输入图像描述

如您所见,顶部和底部已被修剪,并且图像已根据其宽度进行拟合。

于 2014-09-10T17:53:11.947 回答