Ich habe was, womit ich arbeiten kann (denke ich zumindest) 😉
Bei den RGB-Werten ist Mean der Schlüssel, weil der Durchschnitt des Farbanteils.
0 heißt ja hier Schwarz, 255 Weiß.
Folgendes kleines Ruby-Script kann ich ausbauen zur Abfrage:
Habe ich übrigens schon erwähnt das ich Ruby mag 😉
#!/usr/bin/ruby
#
def analyze(aRGB)
# factor: <= 0 dann ist das Bild hell, > 0 dann ist es dunkel
factor = 0
(r,g,b) = aRGB
factor += r.to_i < 127 ? 1 : -1
#factor += g.to_i < 127 ? 1 : -1
# Sonderfall Gelb: Wenn Vollgelb dann immer noch "hell"(schwarze Schrift).
# Wenn wenig Gelb (0) geht es immer noch ins "Helle" (schwarze Schrift).
# Deshalb für Vollgelb 0 Punkte.
factor += g.to_i < 127 ? 0 : -1
factor += b.to_i < 127 ? 1 : -1
return factor
end
#res = IO.popen("identify -verbose Beach-1600.jpg | grep Mean")
res = IO.popen("identify -verbose #{ARGV[0]} | grep Mean")
rgb = Array.new
res.readlines.each do
|line|
#puts line
rgb << line.split[1]
end
res = analyze(rgb)
puts "Faktor: "+res.to_s
if res <=0 then
puts "Bild #{ARGV[0]} ist hell"
return "hell"
else
puts "Bild #{ARGV[0]} ist dunkel"
return "dunkel"
end
Starten mit:
ruby hgimagechk.rb $wo_mein_Bild_ist.jpg
Den Rückgabestring (hell/dunkel) kann ich dann auswerten und entscheiden welche
conkyrc z.B. geladen wird.
Jetzt muß ich nur noch schauen, ob mir der HG-Bildsetzer feh verrät, welches Bild
aus einer Kollektion er gerade geladen hat. Aber das geht sicher auch.