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   zqifa  阅读(2465)  评论(1)    收藏  举报

编辑推荐:
· C#高性能开发之类型系统:从 C# 7.0 到 C# 14 的类型系统演进全景
· 从零实现富文本编辑器#3-基于Delta的线性数据结构模型
· 记一次 .NET某旅行社酒店管理系统 卡死分析
· 长文讲解 MCP 和案例实战
· Hangfire Redis 实现秒级定时任务,使用 CQRS 实现动态执行代码
阅读排行:
· C#高性能开发之类型系统:从 C# 7.0 到 C# 14 的类型系统演进全景
· 管理100个小程序-很难吗
· 基于Blazor实现的运输信息管理系统
· 如何统计不同电话号码的个数?—位图法
· 微信支付功能的设计实现与关键实践(UniApp+Java)全代码

导航

< 2025年4月 >
30 31 1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30 1 2 3
4 5 6 7 8 9 10
点击右上角即可分享
微信分享提示