imagecolorat

Get the index of the color of a pixel

Description

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

Returns the index of the color of the pixel at the specified location in the image specified by image.

If the image is a truecolor image, this function returns the RGB value of that pixel as integer. Use bitshifting and masking to access the distinct red, green and blue component values:

Parameters

image

A GdImage object, returned by one of the image creation functions, such as imagecreatetruecolor.

x

x-coordinate of the point.

y

y-coordinate of the point.

Return Values

Returns the index of the color or false on failure.

Warning

This function may return Boolean false, but may also return a non-Boolean value which evaluates to false. Please read the section on Booleans for more information. Use the === operator for testing the return value of this function.

Changelog

Version Description
8.0.0 image expects a GdImage instance now; previously, a valid gd resource was expected.

Examples

Example #1 Access distinct RGB values

<?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);
?>

The above example will output something similar to:

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

Example #2 Human-readable RGB values using imagecolorsforindex

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

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

var_dump($colors);
?>

The above example will output something similar to:

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

See Also

  • imagecolorset
  • imagecolorsforindex
  • imagesetpixel