2011-03-25 10 views
6

Actualmente estoy escribiendo un shellscript para Bash, que creará miniaturas de diferentes tamaños para algunas cantidades bastante grandes de imágenes grandes.Creación de miniaturas en ImageMagick/GraphicsMagick

Me preguntaba si es posible hacer que GM/IM cree múltiples tamaños de pulgares en una ejecución, para evitar cargar la misma imagen una y otra vez para crear diferentes miniaturas, ahorrando memoria y tiempo en la ejecución del guión.

Respuesta

1

Puede hacerlo con la ImageMagick Perl bindings, o fijaciones en cualquier otro idioma de su elección:

#!/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"; 

El comando conjure apoya una magia lenguaje de scripts con formato XML, pero es más difícil en los ojos que el Perl versión, y la documentación sobre los enlaces Perl es definitivamente mejor.

1

De acuerdo con this post puede usar -write filename con GraphicsMagick para "escribir la imagen actual en el nombre de archivo especificado y luego continuar el proceso ... para producir varios tamaños más pequeños mientras lee la imagen original solo una vez".

Cuestiones relacionadas