ホームページ >バックエンド開発 >PHPチュートリアル >imagecreatefrompng() を使用すると PNG サムネイルの透明度が失われるのはなぜですか?
画像サムネイルの PNG 透明度の損失
imagecreatefrompng() 関数を使用して GD ライブラリでサムネイルを作成すると、次の問題が発生しました。 PNG の透明な背景は黒一色に置き換えられます。これに対処するために、コードを調べて解決策を特定しましょう。
提供されたコードは、画像のサイズを効果的に変更し、JPEG として保存します。ただし、問題は、imagecreatetruecolor() 関数を使用した宛先イメージ ($dimg) の初期化にあります。 PNG 画像の透明度を維持するには、追加の手順が必要です。コードの修正バージョンは次のとおりです。
<code class="php">$dimg = imagecreatetruecolor($width_new, $height_new); // Start changes for PNG transparency switch ($stype) { case 'gif': case 'png': // Define black as a color $background = imagecolorallocate($dimg, 0, 0, 0); // Make black transparent imagecolortransparent($dimg, $background); // Disable blending to avoid mixing black with the image imagealphablending($dimg, false); // Enable alpha channel preservation imagesavealpha($dimg, true); break; default: break; } // End changes $wm = $w/$nw; $hm = $h/$nh;</code>
これらの手順を追加することで、次のことが保証されます。
以上がimagecreatefrompng() を使用すると PNG サムネイルの透明度が失われるのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。