2011-12-14 41 views
1

如何檢測圖像有多少顏色,然後返回PHP中這些顏色的RGB或十六進制值?隨着標準的文件格式... PNG,JPG,GIF等檢測上傳圖像有多少顏色

樣品圖片: enter image description here

用於: 在線設計工具,它允許你上傳圖片的使用設計師。我試圖拒絕超過10種顏色的所有圖像(或可能會減少顏色?)。對於顏色少於10色的圖像,我試圖返回存在的每種顏色的十六進制或RGB值(出現的顏色越多,打印過程越昂貴)。

+0

你能給一個圖像的例子嗎?這樣的代碼的目的。 – 2011-12-14 19:26:56

回答

4
$gd = imagecreatefrompng($filename); 

$width = imagesx($gd); 
$height = imagesy($gd); 

$colors = array(); 

for($x = 0; $x < $width; $x++) 
{ 
    for($y = 0; $y < $height; $y++) 
    { 
     $color = imagecolorat($gd, $x, $y); 
     $hex = sprintf("0x%06x", $color); 

     if(!in_array($hex, $colors)) 
     { 
      $colors[] = $hex; 
     } 
    } 
} 
+1

它是該死的緩慢,但我張貼相同的解決方案:) – TimWolla 2011-12-14 19:35:55