PHP Australia Conference 2015

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

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

返り値

イメージのパレットにおける、指定した色+アルファ値のインデックスを返します。 指定した色がイメージのパレットに存在しない場合、-1が返されます。

例1 GD ロゴからの色の取得

<?php

// 画像を用意します
$im imagecreatefrompng('./gdlogo.png');

$colors   = Array();
$colors[] = imagecolorexactalpha($im255000);
$colors[] = imagecolorexactalpha($im000127);
$colors[] = imagecolorexactalpha($im25525525555);
$colors[] = imagecolorexactalpha($im1002555220);

print_r($colors);

// メモリから開放します
imagedestroy($im);
?>

上の例の出力は、 たとえば以下のようになります。

Array
(
    [0] => 16711680
    [1] => 2130706432
    [2] => 939524095
    [3] => 342163252
)

注意

注意: この関数は、GD 2.0.1 以降を必要とします (2.0.28 以降を推奨します)。

参考

add a note add a note

User Contributed Notes 2 notes

up
0
matt at matt-darby dot com
9 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!
up
-1
phpdoc-comment at aditus dot nu
11 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.
To Top