2013-03-07 52 views
5

我有一堆產品在200x200圖像的網頁上。我的第一次運行是獲取每個像素的數據(嵌套for循環,一個用於x,一個用於y),然後將rgb轉換爲十六進制,並將它們存儲在數組中,然後獲取最常用的數據。此腳本一次需要在每頁96個項目上運行。尋找圖像的最常見的顏色

目前,它創建一個畫布並將產品圖像放入該畫布中,然後執行上述操作。

是否有某種平均算法可以使這個更快?

+1

你目前的算法是什麼? – mpm 2013-03-07 06:16:32

回答

11

是的!

Lokesh Dhakar創建了一個名爲「顏色小偷」的腳本,用於計算圖像的主色。它使用修改的中值切割量化算法(MCCQ)快速對顏色進行聚類並確定主色(甚至是整個調色板)。

這裏有一個演示:http://lokeshdhakar.com/projects/color-thief/和腳本可在github在這裏:https://github.com/lokesh/color-thief

+0

它在內部使用'canvas.getImageData()',所以你可能會得到「受污染的畫布」安全警告問題。 – tigrou 2017-11-09 16:04:51

-1

我知道這聽起來很容易使用的庫和所有的,但我發現了一個更簡單的解決方案,幾乎成爲目的。 當您應用模糊濾鏡時,它所要做的就是取像素強度的平均值。因此,如果將模糊的圖像具有相當高的像素值一樣

filter:blur(30px); 

filter:blur(50px); 

或任何適合,它平均出局整個圖像,併爲您提供了一個堅實的背景顏色,這大部分時間是圖像中突出的顏色。

它要簡單得多,應該幾乎總是工作。試試修補模糊量。

還記得設置overflow-y被隱藏,因爲高模糊會導致圖像外出現白色填充。隱藏溢出將解決這個問題。

希望幫助:)