需求:
不变图片比例,居中裁切至指定大小。
脚本效果:
指定输出文件夹及裁切参数(长x宽),批量裁切source文件夹中的图片。
工具&环境:
imagemagick, perl
代码:
#!/usr/bin/perl -w
#use strict;
use warnings;
#将source文件夹中图片裁切至指定大小存入指定文件夹,图片不拉伸,居中裁切
#e.g.: perl r.pl './dianping/' 640x400
#e.g.: perl r.pl './meituan/' 660x480
#e.g.: perl r.pl './tao/' 1080x575
$target = $ARGV[0];
$param = $ARGV[1];
print $target . "\t" . $param . "\n";
system("mkdir ${target}");
opendir (DIR, './source');
while( $filename = readdir(DIR) ) {
next if($filename eq '.' || $filename eq '..');
$source_name = './source/' . $filename;
$target_name = $target . $filename;
system("convert ${source_name} -alpha Background -background white ${target_name}");
system("convert ${target_name} -resize '${param}^' ${target_name}");
system("convert ${target_name} -gravity Center -crop '${param}+0+0' +repage ${target_name}");
}
closedir(DIR);