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