需求:
不变图片比例,居中裁切至指定大小。
脚本效果:
指定输出文件夹及裁切参数(长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);