2011-03-25 4 views
6

저는 현재 Bash 용 셸 스크립트를 작성 중입니다. 대용량 이미지의 크기가 다른 경우 다른 크기의 축소판을 만듭니다.ImageMagick/GraphicsMagick에서 여러 축소판 만들기

GM/IM이 한 번의 실행으로 여러 크기의 엄지 손가락을 만들어 다른 미리보기 이미지를 만들 때 동일한 이미지를 반복해서로드하지 않도록하여 스크립트 실행시 메모리와 시간을 절약 할 수 있는지 궁금합니다.

답변

1

당신은 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 바인딩에 대한 문서가 확실히 좋습니다.

1

this post에 따르면 GraphicsMagick과 함께 -write filename을 사용하여 "지정된 파일 이름에 현재 이미지를 쓰고 나서 계속해서 한 번만 원본 이미지를 읽는 동안 다양한 작은 크기를 생성 할 수 있습니다".

관련 문제