Heim > Artikel > Backend-Entwicklung > Warum werden PNG-Bilder mit „imagecreatefrompng()“ in PHP schwarz?
PNG-Bilder wurden mit imagecreatefrompng() schwarz
Problem:
Benutzer sind auf ein Problem gestoßen Problem, bei dem die PHP-Funktion imagecreatefrompng() transparente Bereiche in PNG-Bildern in einfarbiges Schwarz umwandelt, wenn Miniaturansichten mit der GD-Bibliothek erstellt werden.
PHP-Miniaturansicht-Erstellungscode:
<code class="php">function cropImage($nw, $nh, $source, $stype, $dest) { // ... switch($stype) { case 'png': $simg = imagecreatefrompng($source); break; // ... } // ... }</code>
Lösung:
Um dieses Problem zu beheben, sind zusätzliche Schritte vor imagecreatetruecolor() erforderlich, insbesondere für PNG- und GIF-Bilder. Diese Schritte umfassen:
<code class="php">// Before imagecreatetruecolor() $dimg = imagecreatetruecolor($width_new, $height_new); // png ?: gif // Additional steps for PNG and GIF switch ($stype) { case 'gif': case 'png': // Black color $background = imagecolorallocate($dimg , 0, 0, 0); // Remove black from placeholder imagecolortransparent($dimg, $background); // Turn off alpha blending imagealphablending($dimg, false); // Turn on alpha channel saving imagesavealpha($dimg, true); break; default: break; }</code>
Durch die Implementierung dieser zusätzlichen Schritte bleiben transparente Bereiche in PNG-Bildern erhalten, wenn Miniaturansichten mit imagecreatefrompng() erstellt werden.
Das obige ist der detaillierte Inhalt vonWarum werden PNG-Bilder mit „imagecreatefrompng()“ in PHP schwarz?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!