ImageMagick是一个图像处理软件,通过它可以编辑处理包括JPEG、TIFF、PNM、PNG、GIF和Photo CD在内的等当今最流行的图象格式,这里我们介绍一下其perl接口的PerlMagick的使用技巧。
PerlMagick的模块名称叫Image::Magick,通过cpan网络可以搜索到它。
Perl可以处理在底色图片上加上丰富的图片以及文字信息,首先,我们选定一些素材如下:
背景:
然后开始写脚本啦!先创建一个对象$img,读入背景图像,如下所示:
$img = new Image::Magick();
$x = $img->ReadImage('512x120_19321535.jpg');
warn "$x" if "$x";
然后创建另外一个图片对象$capimg,设置属性透明,并读入图片信息:
$capimg = new Image::Magick();此时图片信息如果需要图片的背景进行透明化,需要对其属性进行如下配置:
$x = $capimg->Set(
size => '100x100',
alpha => 'Transparent',
);
warn "$x" if "$x";
$x = $capimg->ReadImage($file);
warn "$x" if "$x";
$x = $capimg->FloodfillPaint(接下来我们对图像进行组合,代码示例如下:
fuzz => "5%",
);
warn "$x" if "$x";
$x = $capimg->Transparent(
color => 'black',
);
warn "$x" if "$x"
$x = $tmpimg->Composite(添加上文字信息——“Cnangel的描述文字”,并调整位置和字体等:
image => $capimg,
x => 75,
y => 10,
compose => 'over',
geometry => '+35+65'
);
warn "$x" if "$x";
$x = $tmpimg->Annotate(最后写入图片文件:
x => 190,
y => 80,
font => '/u/fonts/simkai.ttf',
pointsize => 48,
fill => 'green',
text => “Cnangel的描述文字”,
);
warn "$x" if "$x";
$x = $tmpimg->Write(打开图片,效果如下:
filename => "$imageoutdir/$filename",
compression => 'None'
);
warn "$x" if "$x";
其完整的批量处理脚本在此:
imgmerge.pl
其实ImageMagick也提供了命令行模式——convert,若转换背景图像为透明,则:
convert image.png -fuzz 10% -transparent white image.png另外,ImageMagick提供了包括翻转、滤镜等很多和photoshop一样的功能,甚至可以模拟复原图像等,如下图:
上面的只是一些例子,更多的ImageMagick功能还需要读者亲身体会哟!