Я использую Perl Magick , который является модулем Perl для Image Magick для преобразования изображений из GIF и PNG в JPEG. Все работает отлично, пока я не попытаюсь преобразовать изображение с прозрачным фоном.
Поведение по умолчанию для функции Resize () заключается в использовании черного, который разрушает изображения, которые мы пытаемся преобразовать. Вместо этого я хочу изменить цвет фона по умолчанию на белый и не могу понять, как это сделать.
Если вы используете Image Magick в командной строке, вы можете изменить фон с помощью:
convert image.gif -background \#FFFFFF -flatten image.jpg
А вот код perl, который я использую для изменения размера и преобразования изображения:
use Image::Magick;
my $image = Image::Magick->new();
$image->Read("input.png");
$image->Resize(geometry=>'500x');
$image->Write("output.jpg");
Я попробовал следующее, чтобы заставить его работать, но безрезультатно:
use Image::Magick;
my $image = Image::Magick->new();
$image->Read("input.png");
$image->Set(background => 'white');
$image->Flatten();
$image->Resize(geometry=>'500x');
$image->Write("output.jpg");
А также:
use Image::Magick;
my $image = Image::Magick->new();
$image->Read("input.png");
$image->Resize(geometry=>'500x',background=>'white');
$image->Write("output.jpg");
Буду признателен за помощь в выяснении того, как успешно установить цвет фона по умолчанию для метода Perl Magick Resize (). Заранее спасибо за помощь!