【发布时间】:2011-07-22 19:19:10
【问题描述】:
我目前正在为 Bash 编写一个 shellscript,它将为一些相当大量的大图像创建不同大小的缩略图。
我想知道是否可以让 GM/IM 在一次运行中创建多种大小的缩略图,以避免一遍又一遍地加载相同的图像来创建不同的缩略图,从而节省内存和执行脚本的时间?
【问题讨论】:
标签: imagemagick thumbnails image-scaling graphicsmagick
我目前正在为 Bash 编写一个 shellscript,它将为一些相当大量的大图像创建不同大小的缩略图。
我想知道是否可以让 GM/IM 在一次运行中创建多种大小的缩略图,以避免一遍又一遍地加载相同的图像来创建不同的缩略图,从而节省内存和执行脚本的时间?
【问题讨论】:
标签: imagemagick thumbnails image-scaling graphicsmagick
您可以使用 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 一起使用,以“将当前图像写入指定的文件名,然后继续处理......以产生各种更小的尺寸,同时仅读取一次原始图像”。
【讨论】: