Ich versuche herauszufinden, wie Sie das Image::Resize
Perl-Modul verwenden, um PNG-Bilder zu verkleinern. Der folgende Code tut Arbeit:Perl Image :: Resize-Modul und PNG-Bilder
my $image = Image::Resize->new($read_path);
my $gd = $image->resize(1000,1000);
open (DISPLAY,">$write_path") || die "Cant write $write_path, Reason: $!";
binmode DISPLAY;
if ($read_path =~ /\.jpg$/i) {
print DISPLAY $gd->jpeg();
} elsif ($read_path =~ /\.gif$/i) {
print DISPLAY $gd->gif();
} elsif ($read_path =~ /\.png$/i) {
print DISPLAY $gd->png();
}
close DISPLAY;
jedoch das Ergebnis nicht das, was würde Ich mag (die skalierte Version hat einen schwarzen Hintergrund, wenn Sie ein transparentes PNG konvertieren)
Scaled:
Wie kann ich sagen, dass es einen weißen Hintergrund auf das Bild setzen soll? Ich überprüfte die Man-Page aus, konnte aber nichts sehen hilfreich:
http://search.cpan.org/dist/Image-Resize/Resize.pm
Dank!
UPDATE: Für alle mit Interesse, was ich tun am Ende wurde sie nur von einem .png .jpg Umwandlung convert
verwendet wird;
convert "$read_path" -background white -flatten "$path/$filename"
, die tatsächlich in diesem Fall besser klappt, wie wir brauchen nicht die Transparenz (und jpg sind viel kleiner in der Größe)
Da Sie ein [GD :: Image] (https://metacpan.org/pod/GD) zurückbekommen, können Sie seine Methode verwenden, um Dinge zu überprüfen und zu ändern. Finden Sie heraus, ob die Transparenz zuerst richtig eingestellt ist und wie sie dann weiß dargestellt wird, bevor Sie sie drucken. – simbabque