ホームページ >バックエンド開発 >PHPチュートリアル >PHP の GD ライブラリを使用して PNG 画像のサイズを変更するときに透明度を維持するにはどうすればよいですか?

PHP の GD ライブラリを使用して PNG 画像のサイズを変更するときに透明度を維持するにはどうすればよいですか?

Linda Hamilton
Linda Hamiltonオリジナル
2024-12-09 01:36:12296ブラウズ

How Can I Preserve Transparency When Resizing PNG Images with PHP's GD Library?

GD の imagecopyresampled を使用したリサンプリングされた PNG 画像の透明度の維持

PHP では、GD ライブラリは画像のサイズを変更するための imagecopyresampled 関数を提供します。ただし、透明な領域がある PNG 画像で使用すると、多くの場合透明度が失われ、単色に置き換えられます。

この問題に対処するには、次の手順が重要です:

  1. アルファ ブレンディングを無効にする:
    サイズ変更する前に、引数として false を指定した imagealphablending 関数を使用して、アルファ ブレンディングを無効にします。これにより、ソース イメージの色とターゲット イメージの色が混合するのを防ぎます。
  2. アルファ保存を有効にする:
    imagesavealpha を true として呼び出して、サイズ変更されたイメージでアルファの透明度が保持されるようにします。口論。これにより、ターゲット画像に透明度情報を維持するように指示されます。

これらの調整を組み込んだ更新されたコード スニペットは次のとおりです。

$srcImage = imagecreatefrompng($uploadTempFile);
$targetImage = imagecreatetruecolor(128, 128);
imagealphablending($targetImage, false);
imagesavealpha($targetImage, true);

imagecopyresampled(...);

これらの措置を実装すると、サイズ変更された PNG 画像は透明度を正確に保ちます。

以上がPHP の GD ライブラリを使用して PNG 画像のサイズを変更するときに透明度を維持するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。