imagecolorexactalpha
(PHP 4 >= 4.0.6, PHP 5, PHP 7, PHP 8)
imagecolorexactalpha — 指定した色+アルファ値のインデックスを取得する
説明
イメージのパレットで指定した色+アルファ値のインデックスを返します。
パラメータ
image
imagecreatetruecolor()のような画像作成関数が返す GdImage オブジェクト。
red
-
赤コンポーネントの値。
green
-
緑コンポーネントの値。
blue
-
青コンポーネントの値。
alpha
-
0
から127
までの値。0
は完全に不透明な状態。127
は完全に透明な状態を表します。
戻り値
イメージのパレットにおける、指定した色+アルファ値のインデックスを返します。 指定した色がイメージのパレットに存在しない場合、-1が返されます。
変更履歴
バージョン | 説明 |
---|---|
8.0.0 |
image は、
GdImage
クラスのインスタンスを期待するようになりました。
これより前のバージョンでは、有効な gd resource が期待されていました。
|
例
例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 )
参考
- imagecolorclosestalpha() - 指定した色+アルファ値に最も近い色のインデックスを取得する
+add a note
User Contributed Notes 2 notes
matt at matt-darby dot com ¶
19 years ago
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!
phpdoc-comment at aditus dot nu ¶
22 years ago
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.