php 提取图片主要颜色

PHP实现获取图片颜色值的方法

PHP获取图片颜色值检测图片主要颜色是通过imagecreatefromjpeg函数读取图片,再循环获得各个颜色值加以计算实现的。

 

 1 /**
 2  * 获取图片主要颜色
 3  * @param $image
 4  * @return array
 5  */
 6 function dominant_color($image)
 7 {
 8     $rTotal = $gTotal = $bTotal = $total = 0;
 9     $i      = imagecreatefromjpeg($image);
10     for ($x = 0; $x < imagesx($i); $x++) {
11         for ($y = 0; $y < imagesy($i); $y++) {
12             $rgb    = imagecolorat($i, $x, $y);
13             $r      = ($rgb >> 16) & 0xFF;
14             $g      = ($rgb >> 8) & 0xFF;
15             $b      = $rgb & 0xFF;
16             $rTotal += $r;
17             $gTotal += $g;
18             $bTotal += $b;
19             $total++;
20         }
21     }
22     $rAverage = round($rTotal / $total);
23     $gAverage = round($gTotal / $total);
24     $bAverage = round($bTotal / $total);
25     return array(
26         'r' => $rAverage,
27         'g' => $gAverage,
28         'b' => $bAverage,
29     );
30 }

 

posted on 2018-02-27 14:51  kingofyz  阅读(2508)  评论(1)    收藏  举报

导航