imagecolorallocatealpha
(PHP 4 >= 4.3.2, PHP 5, PHP 7)
imagecolorallocatealpha — 画像で使用する色を透過度を指定して作成する
説明
imagecolorallocatealpha
( resource $image
, int $red
, int $green
, int $blue
, int $alpha
) : int
imagecolorallocatealpha() は、
透明度を指定するパラメータ alpha
が追加されている以外は imagecolorallocate()
と等価です。
パラメータ
image
- imagecreatetruecolor() のような画像作成関数が返す画像リソース。
red
- 赤コンポーネントの値。
green
- 緑コンポーネントの値。
blue
- 青コンポーネントの値。
alpha
0
から127
までの値。0
は完全に不透明な状態。127
は完全に透明な状態を表します。
パラメータ red
、green
および blue
には、
0 から 255 までの整数値か
0x00 から 0xFF までの十六進値を指定します。
返り値
色 ID、あるいは作成に失敗した場合に false
を返します。
例
例1 imagecolorallocatealpha() の使用例
<?php$size = 300;$image=imagecreatetruecolor($size, $size);// 白い背景で黒いふちどりにします$back = imagecolorallocate($image, 255, 255, 255);$border = imagecolorallocate($image, 0, 0, 0);imagefilledrectangle($image, 0, 0, $size - 1, $size - 1, $back);imagerectangle($image, 0, 0, $size - 1, $size - 1, $border);$yellow_x = 100;$yellow_y = 75;$red_x = 120;$red_y = 165;$blue_x = 187;$blue_y = 125;$radius = 150;// alpha 値を指定して色を作成します$yellow = imagecolorallocatealpha($image, 255, 255, 0, 75);$red = imagecolorallocatealpha($image, 255, 0, 0, 75);$blue = imagecolorallocatealpha($image, 0, 0, 255, 75);// 3つの重なる円を描きますimagefilledellipse($image, $yellow_x, $yellow_y, $radius, $radius, $yellow);imagefilledellipse($image, $red_x, $red_y, $radius, $radius, $red);imagefilledellipse($image, $blue_x, $blue_y, $radius, $radius, $blue);// 正しいヘッダを出力するのを忘れないように!header('Content-Type: image/png');// 最後に、結果を出力しますimagepng($image);imagedestroy($image);?>
上の例の出力は、 たとえば以下のようになります。
例2 imagecolorallocatealpha() 関数を使い、典型的なアルファ値を変換する
アルファの値を 0
にすると、通常は完全に透過なピクセルが指定されますし、
アルファチャネルは 8bit です。このようなアルファ値を
imagecolorallocatealpha() 関数と互換性がある値に変換するには、
いくつか簡単な計算をすれば十分です:
<?php$alpha8 = 0; // 完全に透過var_dump(127 - ($alpha8 >> 1));$alpha8 = 255; // 完全に不透明var_dump(127 - ($alpha8 >> 1));?>
上の例の出力は以下となります。
int(127) int(0)