使用imagemagick从照片中的无缝图像

时间:2016-11-15 22:47:12

标签: image perl imagemagick batch-processing imagemagick-convert

我必须从照片中创建无缝的方形图片。 每张照片的分辨率为6000x4000,转换后的图像应为4000x4000px左右。我想在Linux机器上使用imagemagick从bash或perl脚本运行它。有人这么简单吗?

2 个答案:

答案 0 :(得分:3)

让我们从600x400的图像开始:

enter image description here

现在,如果你想要宽度的中心400像素和原始的全高:

convert start.png -gravity center -extent 400x result.png

enter image description here

或者,如果你想要最右边的300像素:

convert start.png -gravity east -extent 300x result.png

enter image description here

或者,如果像你的问题缩小了10倍,你想从左边开始100px并获得400px,你可以使用偏移量进行裁剪:

convert start.png -crop 400x+100 result.png

enter image description here

注意:

我用:

制作了起始图像
convert xc:cyan xc:magenta xc:yellow +append -resize 600x400\! start.png

答案 1 :(得分:2)

Perl在这里。这将从位置0,0(左上角)开始将图像裁剪为400x400:

use warnings;
use strict;

use Image::Magick;

my $img = Image::Magick->new;

$img->Read('img.jpg');

print $img->Get('width') . " ";
print $img->Get('height') ."\n";

$img->Crop(geometry => '400x400+0+0');
$img->Write('img_new.jpg');

$img->Read('img_new.jpg');

print $img->Get('width') . " ";
print $img->Get('height') ."\n";

输出:

4128 2322 # original
400 400   # new