Php/docs/function.imagecolorallocatealpha

提供:Dev Guides
< Php
移動先:案内検索

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 は完全に透明な状態を表します。

パラメータ redgreen および blue には、 0 から 255 までの整数値か 0x00 から 0xFF までの十六進値を指定します。

返り値

色 ID、あるいは作成に失敗した場合に false を返します。

警告 この関数は論理値 false を返す可能性がありますが、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)

参考