imagecolorallocate

(PHP 4, PHP 5, PHP 7, PHP 8)

imagecolorallocate为图像分配颜色

描述

imagecolorallocate(
    GdImage $image,
    int $red,
    int $green,
    int $blue
): int|false

返回一个颜色标识符,表示由给定 RGB 分量组成的颜色。

imagecolorallocate() 必须被调用来创建要在 image 表示的图像中使用的每种颜色。

注意:

imagecolorallocate() 的第一次调用将在基于调色板的图像(使用 imagecreate() 创建的图像)中填充背景颜色。

参数

image

一个 GdImage 对象,由图像创建函数之一返回,例如 imagecreatetruecolor()

red

红色分量的值。

green

绿色分量的值。

blue

蓝色分量的值。

这些参数是介于 0 和 255 之间的整数或介于 0x00 和 0xFF 之间的十六进制数。

返回值

一个颜色标识符或 false 如果分配失败。

警告

此函数可能会返回布尔值 false,但也可能返回一个非布尔值,该值计算结果为 false。有关更多信息,请阅读有关 布尔值 的部分。使用 === 运算符 来测试此函数的返回值。

变更日志

版本 描述
8.0.0 image 现在期望一个 GdImage 实例;以前,期望的是一个有效的 gd resource

示例

示例 #1 imagecolorallocate() 示例

<?php

$im
= imagecreate(100, 100);

// 将背景设置为红色
$background = imagecolorallocate($im, 255, 0, 0);

// 设置一些颜色
$white = imagecolorallocate($im, 255, 255, 255);
$black = imagecolorallocate($im, 0, 0, 0);

// 十六进制方法
$white = imagecolorallocate($im, 0xFF, 0xFF, 0xFF);
$black = imagecolorallocate($im, 0x00, 0x00, 0x00);

?>

参见

添加注释

用户贡献的注释 21 个注释

jahservant 13 at gmail dot com
14 年前
请注意,您只能为任何图像调色板分配 255 种颜色。如果您尝试分配更多颜色,imagecolorallocate() 将会失败。

例如,如果您要随机分配颜色,最好检查您是否已经用完了所有可能的颜色。您可以使用 imagecolorclosest() 来获取最接近的已分配颜色
<?php
// 分配随机 rgb 值
$c1 = mt_rand(50,200); // r(ed)
$c2 = mt_rand(50,200); // g(reen)
$c3 = mt_rand(50,200); // b(lue)
// 测试我们是否已经用完了调色板
if(imagecolorstotal($pic)>=255) {
// 调色板用完;选择最接近的已分配颜色
$color = imagecolorclosest($pic, $c1, $c2, $c3);
} else {
// 调色板没有用完;分配新的颜色
$color = imagecolorallocate($pic, $c1, $c2, $c3);
}
?>

此外,即使颜色已经存在于调色板中,imagecolorallocate() 也会在每次调用该函数时分配新的颜色
<?php
// [...]
imagecolorallocate($pic,125,125,125); // 返回 5
imagecolorallocate($pic,125,125,125); // 返回 6
imagecolorallocate($pic,125,125,125); // 返回 7
// [...]
imagecolorallocate($pic,125,125,125); // 返回 23
imagecolorallocate($pic,125,125,125); // 返回 25
// [...]
// 等等...
?>

所以在这里,imagecolorexact() 很有用
<?php
// 检查颜色是否已存在
$color = imagecolorexact($pic, $c1, $c2, $c3);
if(
$color==-1) {
// 颜色不存在,分配一个新的
$color = imagecolorallocate($pic, $c1, $c2, $c3);
}
?>

此外,为了更全面,我们可以将这两个想法结合起来。
<?php
// 分配随机的 RGB 值
$c1 = mt_rand(50,200); // r(ed)
$c2 = mt_rand(50,200); // g(reen)
$c3 = mt_rand(50,200); // b(lue)
// 从调色板中获取颜色
$color = imagecolorexact($pic, $c1, $c2, $c3);
if(
$color==-1) {
// 颜色不存在…
// 测试调色板是否已用完
if(imagecolorstotal($pic)>=255) {
// 调色板已用完;选择最接近的分配颜色
$color = imagecolorclosest($pic, $c1, $c2, $c3);
} else {
// 调色板未用完;分配新的颜色
$color = imagecolorallocate($pic, $c1, $c2, $c3);
}
}
?>

或者作为函数
<?php
function createcolor($pic,$c1,$c2,$c3) {
// 从调色板中获取颜色
$color = imagecolorexact($pic, $c1, $c2, $c3);
if(
$color==-1) {
// 颜色不存在…
// 测试调色板是否已用完
if(imagecolorstotal($pic)>=255) {
// 调色板已用完;选择最接近的分配颜色
$color = imagecolorclosest($pic, $c1, $c2, $c3);
} else {
// 调色板未用完;分配新的颜色
$color = imagecolorallocate($pic, $c1, $c2, $c3);
}
}
return
$color;
}

for(
$i=0; $i<1000; $i++) { // 1000 因为这个值明显大于 255
// 分配随机的 RGB 值
$c1 = mt_rand(50,200); // r(ed)
$c2 = mt_rand(50,200); // g(reen)
$c3 = mt_rand(50,200); // b(lue)
// 生成颜色
$color = createcolor($pic,$c1,$c2,$c3);
// 使用颜色做点什么…
}
?>
Ludo
16 年前
在处理已有的 GIF 图像时,如果不同颜色的数量达到了 GIF 格式的限制,`imagecolorallocate` 不会使用你在参数中指定的颜色,它会使用黑色!

这对从 GIF 图像“动态生成”并进行大量操作的图像来说是个问题。
要解决这个问题,你必须将 GIF 图像转换为 PNG 图像,然后你就可以处理 PNG 图像,一切都会正常。

例如
<?php
// 首先,转换为 PNG 图像
$handle = imagecreatefromgif('my_image.gif');
imagepng($handle, 'my_image.png');
imagedestroy($handle);

// 然后,你可以处理它
$handle = imagecreatefrompng('my_image.png');
/*
* 处理图像
*/
imagegif($handle);
?>
William Barath
16 年前
有很多 hsv2rgb 的评论,但没有工作示例,所以这是我的示例

<?php // hsv2rgb 示例,从 ImageMagick C 代码翻译而来
function hsv2rgb($h, $s, $v)
{
$s /= 256.0;
if (
$s == 0.0) return array($v,$v,$v);
$h /= (256.0 / 6.0);
$i = floor($h);
$f = $h - $i;
$p = (integer)($v * (1.0 - $s));
$q = (integer)($v * (1.0 - $s * $f));
$t = (integer)($v * (1.0 - $s * (1.0 - $f)));
switch(
$i) {
case
0: return array($v,$t,$p);
case
1: return array($q,$v,$p);
case
2: return array($p,$v,$t);
case
3: return array($p,$q,$v);
case
4: return array($t,$p,$v);
default: return array(
$v,$p,$q);
}
}

$image = ImageCreateTrueColor(256,128);
for (
$y=0; $y<64; $y++) for($x=0; $x<256; $x++){
list(
$r,$g,$b) = hsv2rgb($x | 7,255,($y*4) |7);
$color = ($r << 16 ) | ($g << 8) | $b;
imagesetpixel($image, $x, $y-4, $color);
}
for (
$y=64; $y<128; $y++) for($x=0; $x<256; $x++){
list(
$r,$g,$b) = hsv2rgb($x|7,((127-$y)*4)|7,255);
$color = ($r << 16) | ($g << 8) | $b;
imagesetpixel($image, $x, $y-4, $color);
}
for (
$y=120; $y<128; $y++) for($x=0; $x<256; $x++){
$color = (($x |7) << 16) | (($x |7) << 8) | ($x |7);
imagesetpixel($image, $x, $y, $color);
}
header("Content-Type: image/png");
imagepng($image);
?>
jernberg at fairytale dot se
20 年前
这可能对某些人有帮助,如何从 html 颜色定义中分配颜色。

<?php
$fg
= "#ff0080";

$red = 100;
$green = 100;
$blue = 100;
if(
eregi( "[#]?([0-9a-f]{2})([0-9a-f]{2})([0-9a-f]{2})", $fg, $ret ) )
{
$red = hexdec( $ret[1] );
$green = hexdec( $ret[2] );
$blue = hexdec( $ret[3] );
}

$text_color = ImageColorAllocate( $img1, $red, $green, $blue );
?>
andreoli dot carlo at libero dot it
19 年前
hsl 到 RGB
(尚未优化,但它是一个函数)

<?php
function hslToRgb ($h, $s, $l) {
if (
$h>240 || $h<0) return array(0,0,0);
if (
$s>240 || $s<0) return array(0,0,0);
if (
$l>240 || $l<0) return array(0,0,0);
if (
$h<=40) {
$R=255;
$G=(int)($h/40*256);
$B=0;
}
elseif (
$h>40 && $h<=80) {
$R=(1-($h-40)/40)*256;
$G=255;
$B=0;
}
elseif (
$h>80 && $h<=120) {
$R=0;
$G=255;
$B=($h-80)/40*256;
}
elseif (
$h>120 && $h<=160) {
$R=0;
$G=(1-($h-120)/40)*256;
$B=255;
}
elseif (
$h>160 && $h<=200) {
$R=($h-160)/40*256;
$G=0;
$B=255;
}
elseif (
$h>200) {
$R=255;
$G=0;
$B=(1-($h-200)/40)*256;
}
$R=$R+(240-$s)/240*(128-$R);
$G=$G+(240-$s)/240*(128-$G);
$B=$B+(240-$s)/240*(128-$B);
if (
$l<120) {
$R=($R/120)*$l;
$G=($G/120)*$l;
$B=($B/120)*$l;
}
else {
$R=$l*((256-$R)/120)+2*$R-256;
$G=$l*((256-$G)/120)+2*$G-256;
$B=$l*((256-$B)/120)+2*$B-256;
}
if (
$R<0) $R=0;
if (
$R>255) $R=255;
if (
$G<0) $G=0;
if (
$G>255) $G=255;
if (
$B<0) $B=0;
if (
$B>255) $B=255;

return array((int)
$R,(int)$G,(int)$B);
}
?>
smoli at paranoya dot ch
20 年前
有些人可能想要使用 HSV 颜色模型来绘制颜色选择器和圆形

<?php
function &colormap_hsv_to_rgb($h, $s, $v)
{
$ret = new stdClass();

if(
$s == 0)
{
$ret->r = $v;
$ret->g = $v;
$ret->b = $v;

return
$ret;
}
else
{
$h = floatval($h) / 255.0;
$s = floatval($s) / 255.0;
$v = floatval($v) / 255.0;

$hue = $h;

if(
$hue == 1.0)
$hue = 0.0;

$hue *= 6.0;

$i = intval($hue);
$f = $hue - floatval($i);
$w = $v * (1.0 - $s);
$q = $v * (1.0 - ($s * $f));
$t = $v * (1.0 - ($s * (1.0 - $f)));

switch(
$i)
{
case
0: $ret->r = $v; $ret->g = $t; $ret->b = $w; break;
case
1: $ret->r = $q; $ret->g = $v; $ret->b = $w; break;
case
2: $ret->r = $w; $ret->g = $v; $ret->b = $t; break;
case
3: $ret->r = $w; $ret->g = $q; $ret->b = $v; break;
case
4: $ret->r = $t; $ret->g = $w; $ret->b = $v; break;
case
5: $ret->r = $v; $ret->g = $w; $ret->b = $q; break;
}
}

$ret->r = intval($ret->r * 255.0);
$ret->g = intval($ret->g * 255.0);
$ret->b = intval($ret->b * 255.0);

return
$ret;
}
?>
SW
18 年前
这有效!一个黑色的图像,在垂直居中的白色锯齿状 Arial 文本,以及相同左右边距 - 用于菜单按钮。

<?php

function createImgText ($string="", $fontsize=0, $marginX=0, $imgH=0 , $fontfile="", $imgColorHex="", $txtColorHex=""){
if(
$string!=""){
Header("Content-type: image/png");
//
$spacing = 0;
$line = array("linespacing" => $spacing);
$box = @imageftbbox($fontsize,0,$fontfile,$string,$line)
or die(
"ERROR");
$tw=$box[4]-$box[0]; //image width
$marginY = $imgH - (($imgH - $fontsize) / 2);
$imgWidth = $tw + (2*$marginX);
$im = ImageCreate($imgWidth, $imgH);
$int = hexdec($imgColorHex);
$arr = array("red" => 0xFF & ($int >> 0x10),
"green" => 0xFF & ($int >> 0x8),
"blue" => 0xFF & $int);
$black = ImageColorAllocate($im, $arr["red"], $arr["green"], $arr["blue"]);
$int = hexdec($txtColorHex);
$arr = array("red" => 0xFF & ($int >> 0x10),
"green" => 0xFF & ($int >> 0x8),
"blue" => 0xFF & $int);
$white = ImageColorAllocate($im, $arr["red"], $arr["green"], $arr["blue"]);
ImageFtText($im, $fontsize, 0, $marginX, $marginY, $white, $fontfile, $string, array());
ImagePng($im);
ImageDestroy($im);
}else{
echo
"ERROR!";
}
}
createImgText ("Hello World", 9, 10, 18, "arial.ttf", "000000", "FFFFFF");
?>
picklecj at rose-hulman dot edu
17 年前
创建渐变时解决颜色限制问题的另一种解决方案。此文件采用宽度(像素)以及左右颜色(十六进制),并创建一个渐变,同时仅分配 250 种颜色。

<?php
$leftR
= hexdec(substr($_GET["left"],0,2));
$leftG = hexdec(substr($_GET["left"],2,2));
$leftB = hexdec(substr($_GET["left"],4,2));
$rightR = hexdec(substr($_GET["right"],0,2));
$rightG = hexdec(substr($_GET["right"],2,2));
$rightB = hexdec(substr($_GET["right"],4,2));
$image=imagecreate($_GET["width"],1);
for(
$i=0;$i<250;$i++) {
$colorset[$i] = imagecolorallocate($image, $leftR + ($i*(($rightR-$leftR)/250)), $leftG + ($i*(($rightG-$leftG)/250)), $leftB + ($i*(($rightB-$leftB)/250)));
}
for(
$i=0;$i<($_GET["width"]);$i++) {
imagesetpixel ($image, $i, 0, $colorset[(int)($i/($_GET["width"]/250))] );
}
header("Content-type: image/png");
imagepng($image);
imagedestroy($image);
?>

例如:gradient.php?width=640&left=000000&right=FF0000

创建一个 640 像素宽的图像,从黑色渐变到红色。
tyberis
19 年前
两个函数,用于在 HSV 颜色空间(色调/饱和度/亮度)和 RGB 颜色空间(红/绿/蓝)之间进行转换。
<?php
// $c = array($red, $green, $blue)
// $red=[0..1], $green=[0..1], $blue=[0..1];
function rgb2hsv($c) {
list(
$r,$g,$b)=$c;
$v=max($r,$g,$b);
$t=min($r,$g,$b);
$s=($v==0)?0:($v-$t)/$v;
if (
$s==0)
$h=-1;
else {
$a=$v-$t;
$cr=($v-$r)/$a;
$cg=($v-$g)/$a;
$cb=($v-$b)/$a;
$h=($r==$v)?$cb-$cg:(($g==$v)?2+$cr-$cb:(($b==$v)?$h=4+$cg-$cr:0));
$h=60*$h;
$h=($h<0)?$h+360:$h;
}
return array(
$h,$s,$v);
}

// $c = array($hue, $saturation, $brightness)
// $hue=[0..360], $saturation=[0..1], $brightness=[0..1]
function hsv2rgb($c) {
list(
$h,$s,$v)=$c;
if (
$s==0)
return array(
$v,$v,$v);
else {
$h=($h%=360)/60;
$i=floor($h);
$f=$h-$i;
$q[0]=$q[1]=$v*(1-$s);
$q[2]=$v*(1-$s*(1-$f));
$q[3]=$q[4]=$v;
$q[5]=$v*(1-$s*$f);
//return(array($q[($i+4)%5],$q[($i+2)%5],$q[$i%5]));
return(array($q[($i+4)%6],$q[($i+2)%6],$q[$i%6])); //[1]
}
}
?>

[1] - 编辑器注:这是来自“hc at hob(removethis)soft dot net”的修复。
chris at drunkenpirates dot co dot uk
20 年前
<?php

/*
将 ImageColorAllocate、Imagesetpixel、Imagecopyresized 和一些基本的三角函数结合使用的示例
*/

Header("Content-type: image/png");

$height = 128;
$width = 128;

$imA = ImageCreate($width, $height);
$imB = ImageCreate($width*4, $height*4);
$bckA = ImageColorAllocate($imA, 0,0,0);
$bckB = ImageColorAllocate($imB, 0,0,0);

//生成灰度调色板

for($c=0;$c<256;$c++){
ImageColorAllocate($imA, $c, $c, $c);
}

//生成数据

$m=rand(0,10);
for(
$c=0;$c<128;$c++){
$s= (sin( deg2rad($c*360*$m/128) )+1)*127;
$col_arr[$c]=$s;
}
for(
$y=0;$y<$height;$y++){
for(
$x=0;$x<$width;$x++){
$imgA[$x][$y]=$col_arr[$x];
}
}
for(
$y=0;$y<$height;$y++){
for(
$x=0;$x<$width;$x++){
$imgB[$x][$y]=$col_arr[$y];
}
}

//设置像素

for($y=0;$y<$height;$y++){
for(
$x=0;$x<$width;$x++){
$imgC[$x][$y]=$imgA[$x][$y]+$imgB[$x][$y];
$s=$imgC[$x][$y]/2;
Imagesetpixel($imA,$x,$y,$s);
}
}

//调整图像大小以显示

Imagecopyresized ($imB, $imA, 0, 0, 0, 0, $width*4, $height*4, $width, $width);
ImagePNG($imB);
?>
bisqwit at iki dot fi
22 年前
实际上,你不能为调色板图像 (ImageCreate) 分配超过 256 种颜色。
使用 ImageCreateTrueColor 代替。要使它工作,你需要在 php 中有 libgd 版本 2 的支持。
behun at webconsult dot sk
17 年前
此外,当你需要超过 256 种颜色时,使用 imagecreatetruecolor 函数。使用此函数,你可以使用无限数量的颜色。
aaron at parecki dot com
19 年前
这将允许你将图像着色为任何特定颜色。源图像的黑色将变成你指定的颜色,白色将保持白色。最适合给灰度图像着色。

<?php

$r
= 224;
$g = 192;
$b = 0;
$source_file = "picture.jpg";

$im_src = ImageCreateFromJpeg($source_file);
$im_tint = ImageCreate(imagesx($im_src),imagesy($im_src));
for (
$c = 0; $c < 255; $c++) {
ImageColorAllocate($im_tint, max($r,$c), max($g,$c), max($b,$c));
}
ImageCopyMerge($im_tint,$im_src,0,0,0,0, imagesx($im_src), imagesy($im_src), 100);
ImageDestroy($im_src);

header("Content-type: image/jpeg");
imagejpeg($im_tint);

?>
phillip dot gooch at gmail dot com
13 年前
即使在你不希望分配的颜色分配的情况下,也可能是因为你的图像颜色分配表。GIF 和 8 位 PNG 图像非常容易受到这种情况的影响。

如果你使用 GIF 和 PNG,尝试从表中删除一种颜色,应该可以让你分配另一种颜色。
mlse
18 年前
另一个更通用的主题变体,使用与内置函数 hexdec 和 dechex 相同的命名约定...

原型

array hexrgb ( string hex_string )

返回值

hex_string 中指定的 RGB 分量的关联数组。

hexrgb() 示例

<?php
$rgb
= hexrgb("0xAABBCC");
print_r($rgb);
?>

输出为

数组
(
[red] => 170
[green] => 187
[blue] => 204
)

实现

<?php
function hexrgb ($hexstr)
{
$int = hexdec($hexstr);

return array(
"red" => 0xFF & ($int >> 0x10),
"green" => 0xFF & ($int >> 0x8),
"blue" => 0xFF & $int);
}
?>

hexdec 的输出可以传递给 imagecolorallocate 并根据需要进行操作。
mail at kailashnadh dot name
19 年前
这个漂亮的功能将生成给定图像的反转!

<?php

/********************************

代码由 Kailash Nadh 编写
http://kailashnadh.name

用法:
img2neg("my_pic.jpg");

*********************************/

function img2neg($pic) {

header("Content-type: image/jpeg");

$source=imagecreatefromjpeg($pic); // 源图像
$width=imagesx($source); $height=imagesy($source);

$im = imagecreatetruecolor($width, $height); // 正在制作的负片图像

for($y=0; $y < $height; $y++) {
for(
$x=0; $x < $width; $x++) {

$colors=imagecolorsforindex($source, imagecolorat($source, $x,$y));

// 这就是使颜色变为负片的方法
$r=255-$colors['red'];
$g=255-$colors['green'];
$b=255-$colors['blue'];
$test=imagecolorallocate($im, $r,$g,$b);
imagesetpixel($im,$x, $y, $test);
}
}

imagejpeg($im);
imagedestroy($im);
}

?>
mv at brazil dot com
19 年前
<?php

/**
* 使用 lib GD 创建图像条
* 例如:<img src="color_sample.php?color=FF0000" width="10 height="30">
*/

// 拆分 HTML 颜色表示
$hexcolor = str_split($_GET["color"], 2);

// 将 HEX 值转换为 DECIMAL
$bincolor[0] = hexdec("0x{$hexcolor[0]}");
$bincolor[1] = hexdec("0x{$hexcolor[1]}");
$bincolor[2] = hexdec("0x{$hexcolor[2]}");

$im = ImageCreate(100, 100);
$colorallocate = ImageColorAllocate($im, $bincolor[0], $bincolor[1], $bincolor[2]);
ImageFilledRectangle($im, 0, 0, 100, 100, $colorallocate);
header('Content-Type: image/png');
ImagePNG($im);

?>
Zigbigidorlu at hotmail dot com
18 年前
这是一个非常简单且有效的将 HEX 颜色转换为 RGB 的代码。

<?php
function HEX2RGB($color){
$color_array = array();
$hex_color = strtoupper($color);
for(
$i = 0; $i < 6; $i++){
$hex = substr($hex_color,$i,1);
switch(
$hex){
case
"A": $num = 10; break;
case
"B": $num = 11; break;
case
"C": $num = 12; break;
case
"D": $num = 13; break;
case
"E": $num = 14; break;
case
"F": $num = 15; break;
default:
$num = $hex; break;
}
array_push($color_array,$num);
}
$R = (($color_array[0] * 16) + $color_array[1]);
$G = (($color_array[2] * 16) + $color_array[3]);
$B = (($color_array[4] * 16) + $color_array[5]);
return array(
$R,$G,$B);
unset(
$color_array,$hex,$R,$G,$B);
}
?>
Anonymous
19 年前
当使用 truecolor 图像时,还可以使用位运算来生成颜色
<?php
$color
= ($r << 16) | ($g << 8) | $b; // 2261213
?>
在 truecolor 图像中,这与 imagecolorallocate() 函数相同!
leif at harmsen dot net
21 年前
我无法让任何发布的颜色转换为灰度的方法工作。问题似乎在于 gd 在不同版本中从 jpeg 创建图像的方式不一致。最终我写了自己的代码,它对我有用 - 这种方法首先分配了 256 色调色板。你也可以在使用 imagecolorallocate 之前使用单独的 $r、$g、$b 变量来调整图像的色调或色相。

<?php
$resource
= 'whatever.jpg';
$im_size = GetImageSize($resource);
$imageWidth = $im_size[0];
$imageHeight = $im_size[1];
$im = imageCreate($imageWidth,$imageHeight);
for (
$c = 0; $c < 256; $c++) {
ImageColorAllocate($im, $c,$c,$c);
}
$im2 = ImageCreateFromJpeg($resource);
ImageCopyMerge($im,$im2,0,0,0,0, $imageWidth, $imageHeight, 100);
ImageDestroy($im2);
?>

继续使用 $im 作为你的图像,它现在是灰度图像 ....
divinity76 at gmail dot com
8 年前
你用于颜色索引的空间非常有限(在我的系统上只有 255 个索引,但有超过 10 GB 的可用内存,CLI,没有内存限制)。当没有更多可用索引时,imagecolorallocate 将返回 false。当你用相同的 r/g/b 创建 2 个索引时,你会浪费这种非常有限的空间。下面的函数应该永远不会失败,并且永远不会浪费任何颜色索引空间。如果已经存在具有 rgb 的索引,它将返回现有索引,否则它将尝试分配一个索引。如果分配失败(可能是因为所有索引空间都被用完了),它将返回与你请求的最接近的匹配项,并通过 $couldFindExact 向你发出警告。

function myimagecolorallocate($gd,int $red,int $green,int $blue,bool &$couldFindExact=null):int{
$ret=imagecolorexact($gd, $red, $green, $blue);
if($ret===-1){
$ret=imagecolorallocate($gd, $red, $green, $blue);
if($ret===false){
$couldFindExact=false;//颜色索引用完(默认情况下为 255 个索引......我希望我知道为什么)
$ret=imagecolorclosest($gd, $red, $green, $blue);
} else {
$couldFindExact=true;
}
} else {
$couldFindExact=true;
}
return $ret;
}
To Top