我在一大堆图像中有一些图像,这些图像具有围绕图像本身的白色(或黑色)边框。我怎么能......
例如,我有一个1280x1024像素的上传图片,它有一个白色(或黑色)边框,内部尺寸为800x700(可能不居中),我想裁剪掉那个边框,然后调整大小填充640x480输出。这将有效地拍摄内部图像,然后填充640x480,有效地从原始图像中裁剪出100px的高度。
我更喜欢可以是带有图形魔法的批处理/ shell脚本的东西,但也会通过phantomjs接受解决方案。如果可能的话,我宁愿避免使用其他工具/语言。
答案 0 :(得分:2)
Trim会根据角落像素删除边框,
Extent和Gravity会使图片具有一定的尺寸并相应地对齐,
另见Geometry参数,
convert -trim source.png trim.png
convert -extent 800x600 -gravity center trim.png frame.png
以下是所显示图像的尺寸:
修改强>
这将调整图像的大小以适应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
如您所见,顶部和底部已被修剪,图像根据其宽度进行调整。