imagecreatefrompng() 透明領域の代わりに黒い背景を生成しますか?
PHP では、imagecreatefrompng() 関数は PNG を操作するためによく使用されます。画像。ただし、この関数を使用すると、PNG 透明度が黒一色に変換される可能性があることが確認されています。
この問題を解決するには、imagecreatetruecolor() を使用して新しいキャンバスを作成した後、次の手順を実装できます。
これらの変更を実装すると、PNG 画像内のアルファ チャネル情報が保持され、黒い背景への変換が防止されます。更新されたコードは次のようになります:
<code class="php"><?php // ... Before imagecreatetruecolor() $dimg = imagecreatetruecolor($width_new, $height_new); // png ?: gif // start changes switch ($stype) { case 'gif': case 'png': // integer representation of the color black (rgb: 0,0,0) $background = imagecolorallocate($dimg , 0, 0, 0); // removing the black from the placeholder imagecolortransparent($dimg, $background); // turning off alpha blending (to ensure alpha channel information // is preserved, rather than removed (blending with the rest of the // image in the form of black)) imagealphablending($dimg, false); // turning on alpha channel information saving (to ensure the full range // of transparency is preserved) imagesavealpha($dimg, true); break; default: break; } // end changes $wm = $w/$nw; $hm = $h/$nh; // ...</code>
以上がimagecreatefrompng() が透明な領域ではなく黒い背景を生成するのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。