Heim > Artikel > Backend-Entwicklung > Warum rendert „imagecreatefrompng()“ einen schwarzen Hintergrund statt Transparenz?
Imagecreatefrompng() rendert schwarzen Hintergrund statt Transparenz
Der bereitgestellte PHP-Code zum Generieren von Miniaturansichten mithilfe der GD-Bibliothek stößt auf ein Problem mit der PNG-Transparenz wird durch eine durchgehend schwarze Farbe ersetzt. Um dieses Problem zu beheben, sind Änderungen am Code erforderlich, um die Alphakanalinformationen des PNG-Bilds beizubehalten.
Innerhalb der Funktion „cropImage()“ sollten nach dem Aufruf von „imagecreatetruecolor()“ die folgenden Änderungen implementiert werden:
<code class="php">switch ($stype) { case 'gif': case 'png': // Allocate black color and set as background $background = imagecolorallocate($dimg, 0, 0, 0); // Set black as transparent imagecolortransparent($dimg, $background); // Disable alpha blending to preserve transparency imagealphablending($dimg, false); // Enable alpha channel saving to preserve full transparency range imagesavealpha($dimg, true); break; default: break; }</code>
Diese Änderungen stellen sicher, dass der schwarze Hintergrund entfernt wird und die Transparenz des PNG erhalten bleibt. Durch die Deaktivierung der Alpha-Mischung wird verhindert, dass die transparenten Bereiche des PNG mit der schwarzen Farbe gemischt werden. Die Aktivierung der Alphakanal-Speicherung garantiert die Beibehaltung des gesamten Transparenzbereichs.
Durch die Implementierung dieser Codeänderungen sollte der Miniaturbildgenerator die PNG-Transparenz korrekt beibehalten und transparente Hintergründe anstelle von Schwarz rendern.
Das obige ist der detaillierte Inhalt vonWarum rendert „imagecreatefrompng()“ einen schwarzen Hintergrund statt Transparenz?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!