相关疑难解决方法(0)

RGB到最接近的预定义颜色

编辑:

给出答案我做了这个功能

function grabclosestcolor($r, $g, $b){
    $colors = array(array(124,12,12),array(7,7,11),array(110,224,219),array(123,123,123),array(124,177,74),array(130,86,53),array(77,77,77),array(164,124,68),array(204,196,132),array(164,148,147),array(163,123,67),array(26,122,26), array(195,195,50),array(193,193,193),array(255,248,73),array(243,243,243));
    $differencearray = array();
    foreach ($colors as $value) {
        $difference = sqrt(pow($r-$value[0],2)+pow($g-$value[1],2)+pow($b-$value[2],2));
        array_push($differencearray, $difference);
        $smallest = min($differencearray);
        $key = array_search($smallest, $differencearray);
        return $colors[$key];
        }
    }
Run Code Online (Sandbox Code Playgroud)


我的目标是这个.我抓住一张图片并循环遍历每个像素并抓住它的x,y和rgb.

我没有抓住rgb,而是有一个预定义的数组,我正在寻找从我抓到预定义数组的颜色中最接近的匹配.这里的目标是仅使用预定义数组中的颜色.这是我的颜色阵列.

$colors = array(array(124,12,12),array(7,7,11),array(110,224,219),array(123,123,123),array(124,177,74),array(130,86,53),array(77,77,77),array(164,124,68),array(204,196,132),array(164,148,147),array(163,123,67),array(26,122,26), array(195,195,50),array(193,193,193),array(255,248,73),array(243,243,243));
Run Code Online (Sandbox Code Playgroud)

这是我现有的代码循环遍历所有.

$int = imagesx($im) - 1;
$int2 = imagesy($im) - 1;
$start2 = 0;
do{
    $start = 0;
    do{
        $rgb = imagecolorat($im, $start, $start2);
        $r = ($rgb >> 16) & 0xFF;
        $g = ($rgb >> 8) & 0xFF;
        $b = …
Run Code Online (Sandbox Code Playgroud)

php gd function colors

13
推荐指数
3
解决办法
9774
查看次数

标签 统计

colors ×1

function ×1

gd ×1

php ×1