PHPでは、 ImageColorallocatealpha()関数は、画像に色を割り当てるために使用される関数です。特に、色の透明度(アルファチャネル)を指定できます。この関数は、通常、画像処理中に透明な背景を持つ画像に色を追加したり、画像上である程度の処理を実行するときに透明性を制御したいなど、画像処理中に使用されます。
int imagecolorallocatealpha ( resource $image , int $red , int $green , int $blue , int $alpha )
$ image :画像リソース。通常、 ImageCreate()やImageCreatetrueColor()などの関数によって作成された画像です。
$赤:0〜255の値範囲の赤いコンポーネント。
$緑:0〜255の値範囲の緑色のコンポーネント。
$ BLUE :青色コンポーネント、0〜255の値範囲。
$ alpha :透明コンポーネント、値範囲は0(完全に不透明)から127(完全に透明)です。
この関数は、割り当てられた色のインデックス値を返し、それが故障した場合-1 。
MageColorallocatealpha()を使用して透明な背景を持つ画像を作成し、透明性のある長方形を描く方法を示す簡単な例を示します。
<?php
// ワイドを作成します500px,高い500px空白の画像
$image = imagecreatetruecolor(500, 500);
// 完全に透明な背景色を割り当てます
$transColor = imagecolorallocatealpha($image, 0, 0, 0, 127); // 赤、緑、すべての青いです0,完全に透明(alpha = 127)
// 画像の透明な背景を設定します
imagefill($image, 0, 0, $transColor);
// 分配一个赤半透明的颜色
$redColor = imagecolorallocatealpha($image, 255, 0, 0, 63); // 半透明赤(alpha = 63)
// 绘制一个半透明的赤矩形
imagefilledrectangle($image, 50, 50, 450, 450, $redColor);
// 画像を出力し、ファイルに保存します
imagepng($image, "image_with_transparency.png");
// 画像リソースを破壊します
imagedestroy($image);
?>
最初に、500x500の画像リソースを作成しました。
ImageColorallocatealpha()を使用して、完全に透明な色を割り当て、画像の背景をImageFill()で埋めます。
次に、半透明の赤を作成し、 ImageFilledRectangle()を使用して画像に長方形を描画します。
最後に、 ImagePng()機能を介して画像をPNG形式で保存し、画像リソースを破壊します。
ImageColorallocatealpha()は、 PNGやGIFなどの透明性をサポートする画像形式でのみ使用できます。 JPEG画像で透明な色を使用しようとすると、機能しません。
アルファ値は0〜127の範囲で、0は完全に不透明で、127は完全に透明になることを意味します。実際のニーズに応じて透明性を調整できます。
画像をアップロードし、 ImageColorallocatealpha()を使用して画像の透明な背景を処理する必要があると仮定すると、次のコードを参照できます。