Note that a color allocated with imagecolorexactalpha won't show alpha (it will be opaque) when used with imageline(). Use imagerectangle() set to your normal start and end points instead.
Ensure that the image is created via imagecreatetruecolor() as well!
imagecolorexactalpha
(PHP 4 >= 4.0.6, PHP 5)
imagecolorexactalpha — 指定した色+アルファ値のインデックスを取得する
説明
int imagecolorexactalpha
( resource $image
, int $red
, int $green
, int $blue
, int $alpha
)
イメージのパレットで指定した色+アルファ値のインデックスを返します。
パラメータ
- image
-
imagecreatetruecolor() のような画像作成関数が返す画像リソース。
- red
-
赤コンポーネントの値。
- green
-
緑コンポーネントの値。
- blue
-
青コンポーネントの値。
- alpha
-
0 から 127 までの値。 0 は完全に不透明な状態。 127 は完全に透明な状態を表します。
返り値
イメージのパレットにおける、指定した色+アルファ値のインデックスを返します。 指定した色がイメージのパレットに存在しない場合、-1が返されます。
例
例1 GD ロゴからの色の取得
<?php
// 画像を用意します
$im = imagecreatefrompng('./gdlogo.png');
$colors = Array();
$colors[] = imagecolorexactalpha($im, 255, 0, 0, 0);
$colors[] = imagecolorexactalpha($im, 0, 0, 0, 127);
$colors[] = imagecolorexactalpha($im, 255, 255, 255, 55);
$colors[] = imagecolorexactalpha($im, 100, 255, 52, 20);
print_r($colors);
// メモリから開放します
imagedestroy($im);
?>
上の例の出力は、たとえば 以下のようになります。
Array ( [0] => 16711680 [1] => 2130706432 [2] => 939524095 [3] => 342163252 )
注意
注意: この関数は、GD 2.0.1 以降を必要とします (2.0.28 以降を推奨します)。
imagecolorexactalpha
matt at matt-darby dot com
12-Jul-2005 10:09
12-Jul-2005 10:09
phpdoc-comment at aditus dot nu
09-Nov-2002 03:01
09-Nov-2002 03:01
What might be misleading in the docs is that if the specified color + alpha channel does not exist it will be created. So if you like to use an alpha channel in your image enable alpha blending and then create you color using this method.
