2010-01-08 48 views
2

我正在處理一個簡單的圖像庫項目,我想實現基於顏色十六進制代碼進行搜索的功能。因此,如果有人在搜索中輸入「ff1212」,它將只顯示那些包含特定陰影的紅色圖像。我見過一個網站,其搜索方式符合我的要求:http://cssline.com(AJAX部分很好,但它是服務器端的東西)。如何實現圖庫的顏色搜索?

我不知道如何存儲每個圖像的顏色數據。我應該獲取圖像中使用的每個唯一十六進制代碼,並將它們作爲標記存儲在數據庫中嗎?這似乎會創建一個巨大的數據集,這會減慢搜索速度。將圖像本身存儲在數據庫中並在搜索過程中掃描它們的顏色,怎麼辦?這聽起來也會很慢。我知道,一旦我找出如何存儲數據以便快速搜索,我可以弄清楚如何編碼搜索本身。

有人有任何提示或建議可以幫助我嗎?

回答

0

您可以嘗試將每個圖像的顏色區間存儲在數據庫中,而不是存儲每個唯一的顏色值。當然,搜索這些區間可能需要不同的搜索算法。

+0

我不確定我是否理解你的意思是色彩區間。數據如何在數據庫中查看? – James 2010-01-08 20:16:55

0

我不認爲在數據庫中存儲顏色值會使其變慢。儘管如此,它會變得非常大!考慮到你可以對顏色值進行索引,這個過程將會很快。

+0

因此,如果我將顏色十六進制代碼存儲爲使用鏈接表的標記,那麼即使每個圖像可能有數百或數千種顏色,查詢仍然可能很快? – James 2010-01-08 20:18:22

1

首先,將圖像中的顏色數量降低到可行的數量(最多16個)。 然後,爲了能夠比較不同的圖像,我認爲只存儲websafe值(@erelander的時間間隔)來標準化結果是一個好主意。