После многих неприятных разочарований у меня наконец-то появилась одна версия модуля PerlMagick, работающая с моей сборкой 1005 ActivePerl 5.10.0. Теперь я играю с ней, чтобы сделать некоторые базовые замены цвета.
Я уже могу заменить один цвет, скажем, черный, другим, скажем, синим, используя следующий код:
#!perl
use strict;
use warnings;
use Image::Magick;
my $image = Image::Magick->new;
$image->Read('color-test.bmp');
$image->Opaque(fill => 'blue', color => 'black');
$image->Write('result.bmp');
Но мне интересно, смогу ли я заменить любой цвет, кроме черного, на синий. Я надеюсь и думаю, что есть некоторый идиоматический синтаксис для достижения этой цели, поэтому я прошу о быстрой помощи :) Есть идеи?
Спасибо, как всегда, за любые рекомендации / предложения / комментарии:)
UPDATE
@ rjh, спасибо ВАМ за код и информацию :) Я попробовал их все с небольшими пристрастиями, и все они работают как шарм!
Эта старая версия не может быть запущена. Мой PerlMagick - 6.5.4, но с небольшой адаптацией, он также работает так:
use strict;
use warnings;
use Image::Magick;
my $image = Image::Magick->new;
$image->Read('color-test.bmp');
$image->Transparent(color=>'black');
$image->Colorize(fill=>'blue');
$image->Composite(image=>$image);
$image->Write('result.bmp');
Ну, конечно, мне нравится ваша вторая версия. Это супер. Это тот самый синтаксис, который я ожидал, хе-хе:)
И первая версия командной строки также хорошо работает, хотя я не ожидал этой версии.
Еще раз спасибо!