का उपयोग कर पीएनजी का आकार बदलने के इस कोड मैं का उपयोग कर रहा है कैसे पारदर्शिता बनाए रखने के लिए:जब पर्ल और जी.डी.
!/usr/bin/perl
use GD;
sub resize
{
my ($inputfile, $width, $height, $outputfile) = @_;
my $gdo = GD::Image->new($inputfile);
## Begin resize
my $k_h = $height/$gdo->height;
my $k_w = $width/$gdo->width;
my $k = ($k_h < $k_w ? $k_h : $k_w);
$height = int($gdo->height * $k);
$width = int($gdo->width * $k);
## The tricky part
my $image = GD::Image->new($width, $height, $gdo->trueColor);
$image->transparent($gdo->transparent());
$image->copyResampled($gdo, 0, 0, 0, 0, $width, $height, $gdo->width, $gdo->height);
## End resize
open(FH, ">".$outputfile);
binmode(FH);
print FH $image->png();
close(FH);
}
resize("test.png", 300, 300, "tested.png");
उत्पादन छवि एक काले रंग की पृष्ठभूमि है और सभी अल्फा चैनल खो जाते हैं।
इस छवि का उपयोग कर I'am: http://i54.tinypic.com/33ykhad.png
यह परिणाम है: http://i54.tinypic.com/15nuotf.png
मैं अल्फा के सभी संयोजनों की कोशिश की() और पारदर्शिता() आदि बातें, उनमें से कोई भी काम किया ....
Pleas इस मुद्दे के साथ मेरी मदद करें।
के संभावित डुप्लिकेट [PNG छवि पारदर्शिता का उपयोग करते समय PHP के GDlib imagecopyresampled संरक्षित किया जा सकता है?] (Http://stackoverflow.com/questions/32243/can-png-image-transparency-be -preserved-जब-का उपयोग कर-PHPs-gdlib-imagecopyresampled) – daxim