我目前正在为Bash编写一个shellscript,它将为一些相当大量的大图像创建不同大小的缩略图。在ImageMagick/GraphicsMagick中创建多个缩略图
我想知道是否可以让GM/IM在一次运行中创建多个大小的拇指,以避免一次又一次加载相同的图像以创建不同的缩略图,从而节省内存和执行脚本的时间?
我目前正在为Bash编写一个shellscript,它将为一些相当大量的大图像创建不同大小的缩略图。在ImageMagick/GraphicsMagick中创建多个缩略图
我想知道是否可以让GM/IM在一次运行中创建多个大小的拇指,以避免一次又一次加载相同的图像以创建不同的缩略图,从而节省内存和执行脚本的时间?
您可以用ImageMagick Perl bindings做到这一点,或者绑定到你选择的任何其他语言:
#!/usr/bin/perl
use Image::Magick;
my($image, $x);
$image = Image::Magick->new;
$x = $image->Read('sars.png');
warn "$x" if "$x";
$x = $image->Resize(geometry=>'600x600');
warn "$x" if "$x";
$x = $image->Write('x.png');
warn "$x" if "$x";
$x = $image->Resize(geometry=>'400x400');
warn "$x" if "$x";
$x = $image->Write('y.png');
warn "$x" if "$x";
$x = $image->Resize(geometry=>'100x100');
warn "$x" if "$x";
$x = $image->Write('z.png');
warn "$x" if "$x";
的conjure命令支持XML格式Magick脚本语言,但它是在我的眼睛比Perl的困难版本,并且Perl绑定的文档肯定更好。
根据this post,您可以使用-write filename
和GraphicsMagick“将当前图像写入指定的文件名,然后继续处理......以在仅读取一次原始图像的同时生成各种较小尺寸”。