imagecolorat

ピクセルの色のインデックスを取得する

説明

intfalse imagecolorat(GdImage $image, int $x, int $y)

imageで指定された画像上の 特定位置にあるピクセルの色のインデックスを返します。

画像が True カラーイメージである場合、この関数はそのピクセルの RGB 値を整数で返します。 赤、緑、青のそれぞれの値にアクセスするにはビットシフトとマスキングを利用してください:

パラメータ

image

imagecreatetruecolorのような画像作成関数が返す GdImage オブジェクト。

x

点の x 座標。

y

点の y 座標。

戻り値

色のインデックスを返します。失敗した場合に false を返します

警告

この関数は論理値 false を返す可能性がありますが、false として評価される値を返す可能性もあります。 詳細については 論理値の セクションを参照してください。この関数の返り値を調べるには ===演算子 を 使用してください。

変更履歴

バージョン 説明
8.0.0 image は、 GdImage クラスのインスタンスを期待するようになりました。 これより前のバージョンでは、有効な gd resource が期待されていました。

例1 個々の RGB 値へのアクセス

<?php
$im = imagecreatefrompng("php.png");
$rgb = imagecolorat($im, 10, 15);
$r = ($rgb >> 16) & 0xFF;
$g = ($rgb >> 8) & 0xFF;
$b = $rgb & 0xFF;

var_dump($r, $g, $b);
?>

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

int(119)
int(123)
int(180)

例2 imagecolorsforindex による可読形式の RGB 値

<?php
$im = imagecreatefrompng("php.png");
$rgb = imagecolorat($im, 10, 15);

$colors = imagecolorsforindex($im, $rgb);

var_dump($colors);
?>

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

array(4) {
  ["red"]=>
  int(119)
  ["green"]=>
  int(123)
  ["blue"]=>
  int(180)
  ["alpha"]=>
  int(127)
}

参考

  • imagecolorset
  • imagecolorsforindex
  • imagesetpixel