PHP imagecolorresolve 图像GD库函数

  • 定义和用法

    imagecolorresolve - 取得指定颜色的索引值或有可能得到的最接近的替代值
  • 版本支持

    PHP4 PHP5 PHP7
    支持 支持 支持
  • 语法

    imagecolorresolve ( resource $image , int $red , int $green , int $blue )
    
    本函数可以保证对所请求的颜色返回一个颜色索引,要么是确切值要么是所能得到最接近的替代值。如果从文件创建了图像,只有图像中使用了的颜色会被辨析。仅出现在调色板中的颜色不会被辨析。
  • 参数

    参数 必需的 描述
    image1 由图象创建函数(例如imagecreatetruecolor())返回的图象资源。
    red
    green 绿
    blue
  • 返回值

    返回一个整数。
  • 示例

    $colorcount = array();
    for ($x = 0; $x < $width; $x++){
        for ($y = 0; $y < $height; $y++){
            $colorindex = imagecolorat($jpg, $x, $y);
            if (!isset($colorcount[$colorindex])){
                $colorcount[$colorindex] = 1;
            }
            else{
                $colorcount[$colorindex]++;
            }
        }
    }
    asort($colorcount);
    reset($colorcount);
    
    $black = imagecolorexact($jpg, 0, 0, 0);
    if ($black == -1){
        $goner = key($colorcount);
        $rgb = imagecolorsforindex($jpg, $goner);
        #error_log("Need black: About to kill $goner ($rgb[red], $rgb[green], $rgb[blue]) which was only used in $colorcount[$goner] pixels", 0);
        unset($colorcount[$goner]);
        imagecolordeallocate($jpg, $goner);
        $black = imagecolorallocate($jpg, 0, 0, 0);
    }
    if ($black == -1){
        $black = imagecolorresolve($jpg, 0, 0, 0);
        #error_log("Damn!  STILL couldn't allocate the color!", 0);
    }
    
  • 相关函数

    imagecolorclosest() - 取得与指定的颜色最接近的颜色的索引值