Cevaplar
-
PHP ile yapabilirsin. Mantık şöyle:
Imaji gd ile açıp tek tek tüm piksellerin RGB değerlerini okursun. Sonra da bu değerlere göre bir algoritma oluşturursun. Tüm renklerin yüzdelerini tutabilirsin mesela, kırmızı yeşil ve mavi için yüzdeden bulursun. Diğer renkler için biraz kasmak gerekecek ama sonuçta diğer renkler de bu 3 temel rengin karışımı olduğu için yapılabilir.
RGB değerlerini şöyle alabilirsin:
$i = imagecreatefromjpeg("image.jpg"); for ($x = 0; $x < imagesx($i); $x++) { for ($y = 0; $y < imagesy($i); $y++) { $rgb = imagecolorat($i, $x, $y); $r = ($rgb >> 16) & 0xFF; $g = ($rgb >> 8) & 0xFF; $b = $rgb & 0xFF; $rToplam += $r; $gToplam += $g; $bToplam += $b; $toplam++; } } $rOrtalama = round($rToplam/$toplam); $gOrtalama = round($gToplam/$toplam); $bOrtalama = round($bToplam/$toplam);
Bu ortalama değerleri veritabanına kaydederek arama yaptırabilirsin, kırmızı mavi ve yeşil kolay, hangisi büyükse o. Ara renkler için de aradığın rengi RGB'ye dönüştürebilirsin mesela, bir miktar da hata payı ekleyip
select * from fotolar where kirmizi between :kirmizi_min and :kirmizi_max
gibi birşeyler yapabilirsin.