So ändern Sie die Größe von PNG-Bildern mit Transparenz in PHP, ohne Alpha zu verlieren
Beim Versuch, die Größe von PNG-Bildern mit Transparenz in PHP zu ändern, stoßen viele Benutzer auf Probleme wobei die Hintergrundfarbe zu Schwarz wechselt. Dieser Artikel befasst sich mit diesem Problem und bietet eine Lösung.
Der Schlüssel liegt darin, den Bildüberblendungsmodus und das Alphakanal-Speicherflag entsprechend einzustellen, bevor Transparenz zugewiesen wird.
Hier ist der aktualisierte Code:
function resizePNG($image, int $newWidth, int $newHeight) { // Create a new true color image $newImg = imagecreatetruecolor($newWidth, $newHeight); // Disable blending and enable alpha saving imagealphablending($newImg, false); imagesavealpha($newImg, true); // Allocate transparent color $transparent = imagecolorallocatealpha($newImg, 255, 255, 255, 127); // Fill the new image with transparent color imagefilledrectangle($newImg, 0, 0, $newWidth, $newHeight, $transparent); // Get the width and height of the original image $src_w = imagesx($image); $src_h = imagesy($image); // Copy and resize the original image onto the new image imagecopyresampled($newImg, $image, 0, 0, 0, 0, $newWidth, $newHeight, $src_w, $src_h); // Return the new resized image return $newImg; }
Mit diesem aktualisierten Code können PNG-Bilder mit Transparenz in der Größe geändert werden, ohne den Alphakanal zu beeinträchtigen, wodurch sichergestellt wird, dass die Transparenz gewährleistet ist konserviert.
Das obige ist der detaillierte Inhalt vonWie kann ich die Größe von PNGs mit Transparenz in PHP ändern, ohne Alpha zu verlieren?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!