So ändern Sie die Größe von PNGs mit transparentem Hintergrund effektiv in PHP
Die Größenänderung transparenter PNG-Bilder in PHP kann eine herausfordernde Aufgabe sein, ist aber unerlässlich Aufrechterhaltung der Bildqualität. Der von Ihnen bereitgestellte Code weist ein Problem auf, bei dem sich die Hintergrundfarbe bei der Größenänderung in Schwarz ändert. Um dies zu beheben, folgen Sie dem aktualisierten Code unten:
$this->image = imagecreatefrompng($filename); imagealphablending($this->image, false); imagesavealpha($this->image, true); $newImage = imagecreatetruecolor($width, $height); // Allocate a new transparent color and enable alpha blending $background = imagecolorallocatealpha($newImage, 255, 255, 255, 127); imagefilledrectangle($newImage, 0, 0, $width, $height, $background); imagealphablending($newImage, true); imagesavealpha($newImage, true); // Resize the image with transparent background preserved imagecopyresampled($newImage, $this->image, 0, 0, 0, 0, $width, $height, $this->getWidth(), $this->getHeight()); $this->image = $newImage; imagepng($this->image, $filename);
Wichtige Änderungen:
Aktualisieren :
Der bereitgestellte Code verarbeitet transparente Hintergründe mit einer Deckkraft von 0. Allerdings für Bilder mit Deckkraftwerten dazwischen 0 und 100, es wird immer noch ein schwarzer Hintergrund erzeugt. Leider gibt es innerhalb der GD-Bibliothek keine einfache Lösung für diesen Anwendungsfall.
Das obige ist der detaillierte Inhalt vonWie bleibt die Transparenz bei der Größenänderung von PNGs in PHP erhalten?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!