25
A
回答
20
这是一个scr ipt会给你的清单:
function detectColors($image, $num, $level = 5) {
$level = (int)$level;
$palette = array();
$size = getimagesize($image);
if(!$size) {
return FALSE;
}
switch($size['mime']) {
case 'image/jpeg':
$img = imagecreatefromjpeg($image);
break;
case 'image/png':
$img = imagecreatefrompng($image);
break;
case 'image/gif':
$img = imagecreatefromgif($image);
break;
default:
return FALSE;
}
if(!$img) {
return FALSE;
}
for($i = 0; $i < $size[0]; $i += $level) {
for($j = 0; $j < $size[1]; $j += $level) {
$thisColor = imagecolorat($img, $i, $j);
$rgb = imagecolorsforindex($img, $thisColor);
$color = sprintf('%02X%02X%02X', (round(round(($rgb['red']/0x33)) * 0x33)), round(round(($rgb['green']/0x33)) * 0x33), round(round(($rgb['blue']/0x33)) * 0x33));
$palette[$color] = isset($palette[$color]) ? ++$palette[$color] : 1;
}
}
arsort($palette);
return array_slice(array_keys($palette), 0, $num);
}
$img = 'icon.png';
$palette = detectColors($img, 6, 1);
echo '<img src="' . $img . '" />';
echo '<table>';
foreach($palette as $color) {
echo '<tr><td style="background:#' . $color . '; width:36px;"></td><td>#' . $color . '</td></tr>';
}
echo '</table>';
0
如果你可以调用一个外部工具,Imagemagick可以为你生成一个直方图。这可能比PHP实现要快得多。
基本上,这个命令给你的颜色列表,通过最具统治力的第一排序:
convert 'http://i.stack.imgur.com/J2txV.png' -format %c histogram:info:-|sort -r
您可能希望将图像第一映射到一个固定的调色板(“圆关”的颜色)。这是我使用:
convert 'http://i.stack.imgur.com/J2txV.png' -modulate 100,200,100 -remap 'http://i.stack.imgur.com/GvTqB.png' -format %c histogram:info:-|sort -r
相关问题
- 1. 使用PHP检测图像中的主要颜色
- 2. 检测图像中的颜色斑点
- 3. 使用python检测图像中最常用的颜色
- 4. 使用PHP获取图像的颜色
- 5. 使用OpenCV和Python检测HSV图像颜色的问题
- 6. PHP如何检测图像是否包含颜色?
- 7. 用于检测颜色的图像识别库
- 8. PHP GD:用色调颜色乘以图像颜色
- 9. 检测iDevice颜色
- 10. Java颜色检测
- 11. 使用C#进行颜色检测
- 12. 使用YCrCb颜色空间进行颜色检测?
- 13. java中的图像处理和颜色检测
- 14. R中的图像处理/颜色检测:我应该使用哪个库?
- 15. 检测精灵的颜色
- 16. 在php中更改图像的颜色?
- 17. 使用css更改图像的颜色?
- 18. 如何使用MATLAB检索任意图像的背景颜色?
- 19. 使用PHP和Javascript更改图像的一部分的颜色
- 20. Android图像处理检测颜色和把轮廓线
- 21. 检测上传图像有多少颜色
- 22. 检测图像颜色空间是CMYK还是PMS
- 23. Django图像颜色检测功能不叫
- 24. iOS:如何检测图像是否具有某种RGB颜色
- 25. 从图像中检索颜色信息
- 26. 检查背景颜色或图像
- 27. PHP检测父图像的用户url
- 28. php图像类型检测
- 29. 在图中检测周期(使用三种颜色机制)
- 30. 使用直方图评估改善皮肤颜色检测
这可能是你的东西:http://stackoverflow.com/questions/3468500/detect-overall-average-color-of-the-picture – samn
感谢,多数民众赞成真棒。你能把它当作答案吗? – Tech4Wilco