Создание нескольких миниатюр в ImageMagick / GraphicsMagick - PullRequest
6 голосов
/ 25 марта 2011

В настоящее время я пишу сценарий оболочки для Bash, который будет создавать миниатюры разных размеров для довольно большого количества больших изображений.

Мне было интересно, можно ли заставить GM / IM создавать несколько размеровбольшие пальцы за один прогон, чтобы избежать загрузки одного и того же изображения снова и снова для создания разных миниатюр, что экономит память и время при выполнении скрипта?

Ответы [ 2 ]

1 голос
/ 05 декабря 2012

Согласно этой записи вы можете использовать -write filename с GraphicsMagick, чтобы «записать текущее изображение в указанное имя файла, а затем продолжить обработку ..., чтобы получить различные меньшие размеры при чтении исходного изображения просто один раз».

1 голос
/ 25 марта 2011

Вы можете сделать это с помощью привязок ImageMagick Perl или привязок на любом другом языке по вашему выбору:

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

Команда волшебство поддерживает язык сценариев Magick в формате XML, но на мой взгляд это сложнее, чем версия Perl, и документация по привязкам Perl определенно лучше.

...