Wie ändere ich die Größe von PNGs mit Transparenz in PHP?

Ich versuche, PNGs mit transparentem Hintergrund in PHP in der Größe zu ändern, und die Codebeispiele, die ich online gefunden habe, funktionieren bei mir nicht. Hier ist der Code, den ich verwende, Ratschläge werden sehr geschätzt!

$this->image = imagecreatefrompng($filename);

imagesavealpha($this->image, true);
$newImage = imagecreatetruecolor($width, $height);

// Make a new transparent image and turn off alpha blending to keep the alpha channel
$background = imagecolorallocatealpha($newImage, 255, 255, 255, 127);
imagecolortransparent($newImage, $background);
imagealphablending($newImage, false);
imagesavealpha($newImage, true);

imagecopyresampled($newImage, $this->image, 0, 0, 0, 0, $width, $height,  $this->getWidth(), $this->getHeight());
$this->image = $newImage;  
imagepng($this->image,$filename);


Aktualisiere Mit "funktioniert nicht" wollte ich sagen, dass sich die Hintergrundfarbe zu Schwarz ändert, wenn ich die Größe von PNGs ändere.

Antworten auf die Frage(18)

Ihre Antwort auf die Frage