言简意赅 : 整体思路通过PHP GD库获取图片的宽高,根据宽高进行自定义(10)像素点的切分,取切分部分的色块RGB值,记录颜色出现的次数,判断图片的主色系 以及各色系 可以自行改进后 屏蔽模糊多余色块。
/**
* 测试 模拟实现图片颜色展示
* @author eleven
* @noparams
*/
public function textImageCreateFromPng()
{
$im = imagecreatefrompng("图片链接,OSS链接即可");
$width = imagesx($im);
$height = imagesy($im);
$all_color = array();
//横纵每十个像素点拆分 取交点
for ($i=10; $i < $width; $i = $i + 10) {
for ($m = 10; $m < $height; $m = $m + 10) {
$rgb = ImageColorAt($im, $i, $m);
$r = ($rgb >> 16) & 0xFF;
$g = ($rgb >> 8) & 0xFF;
$b = $rgb & 0xFF;
$key = $r.",".$g.",".$b;
$all_color[$key]++;
}
}
$result = arsort($all_color);
}