imagecolorexact
(PHP 4, PHP 5, PHP 7, PHP 8)
imagecolorexact — 取得指定颜色的索引值
说明
返回图像调色板中指定颜色的索引值。
如果图象由文件创建,只有该图象使用到的颜色会被解析。仅存在于调色板中的颜色不会被解析。
返回值
返回调色板中指定颜色的索引值,如果该颜色不存在则返回 -1。
示例
示例 #1 从 GD logo 中获取颜色
<?php
// 设置图像
$im = imagecreatefrompng('./gdlogo.png');
$colors = Array();
$colors[] = imagecolorexact($im, 255, 0, 0);
$colors[] = imagecolorexact($im, 0, 0, 0);
$colors[] = imagecolorexact($im, 255, 255, 255);
$colors[] = imagecolorexact($im, 100, 255, 52);
print_r($colors);
?>
以上示例的输出类似于:
Array ( [0] => 16711680 [1] => 0 [2] => 16777215 [3] => 6618932 )
参见
- imagecolorclosest() - 取得与指定的颜色最接近的颜色索引值
+添加备注
用户贡献的备注 3 notes
jbr at ya-right dot com ¶
19 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.
samtobia at geemail dot com ¶
13 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);
?>
info at educar dot pro dot br ¶
19 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 );
?>
备份地址:http://www.lvesu.com/blog/php/function.imagecolorexact.php