Am Mittwoch, 7. September 2005 02:32 schrieb David Haller: Hallo David,
Am Tue, 06 Sep 2005, Al Bogner schrieb:
Wie extrahiere ich nun in eine neue Variable "red"?
Einfach:
COLOR="` ... identify ... | \ sed -n '/Histogram:/,/Rendering-intent:/p' | \ sort -n | grep -v 'white\|black' | tail -n 1 | awk '{print $NF;}'`"
So, sed+grep+awk ist "bäh"
Funktioniert, während ich hier mit deiner 2. Variante Probleme habe. Es ist zwar mittlerweile geringfügig anders, aber ich sehe da keinen entscheidenden Unterschied: convert "$INP" -strip -resize 100x -blur 3x3 -colors 16 "$GIFFILE" identify_out="`identify -verbose $GIFFILE`" # Das fehlende Quoting von $GIFFILE sollte kein Problem sein, # die Datei hat keine Leerzeichen set +H ## weiss nicht, ob das in einem script wichtig ist COLOR="`echo \"$i\" | awk -F: ' BEGIN { max = 0; } /Histogram:/,/Rendering-intent:/ { if( $0 !~ /Histo|Render|white|black/ ) { if( $1 > max ) { max = $1; maxcol = gensub("[()0-9, ]", "", "g", $2); } } } END{ print maxcol; }'`" echo COLOR $COLOR Ich verstehe auch nicht, was du da alles gemacht hast. Zuerst wird eine Variable identify_out definiert. Was set +H bedeutet will mir "man set" nicht verraten. Warum nun $i definiert ist, ist mir auch nicht klar ... In der IM-ML kam zu einer ähnlichen Problematik folgender Hinweis: convert rose: -strip -colors 216 histogram:- | \ sed -n '/^Comment={/,/^}/{ s///; /^$/q; s///; p; }' | \ sort -rn | head -1 Result for a rose image... 115: (253,253,251) #FDFDFB Allerdings wird hier der Comment-Tag des Histogramm-Files ausgewertet, der für mich nicht zielführend ist. Es geht darum festzustellen, welche Farbe des Bildes dominiert. Ich denke, dass es reicht auf 16 Farben einzugrenzen. Al