imagecolorexact

(PHP 4, PHP 5, PHP 7)

imagecolorexactGet the index of the specified color

설명

int imagecolorexact ( resource $image , int $red , int $green , int $blue )

Returns the index of the specified color in the palette of the image.

이미지를 파일에서 생성하였을 경우, 이미지에서 사용한 색만 해석됩니다. 팔레트에 존재하는 색은 해석되지 않습니다.

인수

image

imagecreatetruecolor() 등의 이미지 생성 함수에서 반환한 이미지 자원.

red

Red 컴포넌트 값.

green

Green 컴포넌트 값.

blue

Blue 컴포넌트 값.

반환값

Returns the index of the specified color in the palette, or -1 if the color does not exist.

예제

Example #1 Get colors from the GD logo

<?php
// Setup an image
$im imagecreatefrompng('./gdlogo.png');

$colors   = Array();
$colors[] = imagecolorexact($im25500);
$colors[] = imagecolorexact($im000);
$colors[] = imagecolorexact($im255255255);
$colors[] = imagecolorexact($im10025552);

print_r($colors);

// Free from memory
imagedestroy($im);
?>

위 예제의 출력 예시:

Array
(
    [0] => 16711680
    [1] => 0
    [2] => 16777215
    [3] => 6618932
)

참고

add a note add a note

User Contributed Notes 3 notes

up
2
jbr at ya-right dot com
16 years ago
A few notes about this function...

This function will only work on images where the palette is 256 colors or less. You also can not use imagetruecolortopalette() to reduce the palette on a true color PNG image that has greater than 256 colors in it's palette, then call this function. If you try to do this imagecolorexact() will report colors not being in the image when they are in the image!

1. works on png(s) 8bit/256 colors or less.
2. works on all gif(s)
3. does not work on any type of jpg/jpeg image.
up
0
samtobia at geemail dot com
11 years ago
A script that changes colors depending on get variable
important to note: I had little success with pngs and getting true red
gifs work much better

<?php
//0 is yellow, 1 is red, 2 is blue
$y = 1 - ceil($_GET["c"]/2);
$r = 1 - floor($_GET["c"]/2);
$b = floor($_GET["c"]/2);

$gd = imagecreatefromgif("example.gif");
imagecolorset($gd, imagecolorexact($gd, 255, 0, 0), $r*255, $y*255, $b*255);
imagecolorset($gd, imagecolorexact($gd, 191, 0, 0), $r*191, $y*191, $b*191);
imagecolorset($gd, imagecolorexact($gd, 128, 0, 0), $r*128, $y*128, $b*128);
imagecolorset($gd, imagecolorexact($gd, 255, 0, 0), $r*64, $y*64, $b*64);

header('Content-Type: image/gif');
imagegif($gd);

?>
up
0
info at educar dot pro dot br
16 years ago
<?php

$src
= "../images/pic.gif";

$red = 9;
$green = 9;
$blue = 4;

$pic0026 = imagecreatefromgif ( $src );

$ind = imagecolorexact ( $pic, $red, $green, $blue );

echo
'<img src="../images/pic.gif" border="0" alt="pic" title="View pic" /><br /><br />';

echo
"RED ( " . $red . " ) GREEN ( " . $green . " ) BLUE ( " . $blue . " )<br />-> Palette Index = " . $ind;

if (
$ind != -1 )
{
echo
"<br />[ The color exists! ]";
}
else
{
echo
"<br />[ The color does not exist! ]";
}

imagedestroy ( $pic );

?>
To Top