2013-04-29 16 views
1

即時得到的圖像的大多數現有的色彩和像ImageMagick:我如何處理直方圖結果?

convert image.jpg -scale 100x100 -gravity \ 
center -crop 50% -dither None -remap color_map.gif \ 
-format %c histogram:info: 

    22: ( 0, 0, 0) #000000 black 
    881: (119,133,142) #77858E rgb(119,133,142) 
    268: (186, 84, 29) #BA541D rgb(186,84,29) 
    662: (212,212,212) #D4D4D4 grey83 
    20: (244,203, 98) #F4CB62 rgb(244,203,98) 
    647: (255,255,255) #FFFFFF white 

何可我這個輸出現在的工作「直方圖」的Funktion顯示呢?我想保存我的數據庫中最現有的顏色,但我不知道如何獲得現在只有數字881的顏色。 任何人都可以幫助我嗎?

回答

3

如果你想從shell純粹做這個(假設bash類似的Unix環境),像這樣的工作:

convert image.jpg -scale 100x100 -gravity center \ 
    -crop 50% -dither None -remap color_map.gif \ 
    -format %c histogram:info: | sort | tail -n1 | \ 
    sed -e 's/.*\(#[0-9A-F]\+\).*/\1/' 

這需要從ImageMagick的輸出,排序,所以最大的彩色數位於底部,僅佔用該行,然後從行中提取顏色十六進制。如果你的目標是得到十進制rgb值而不是十六進制,你可以調整sed正則表達式。

因此,對於您的示例圖像,輸出應該只是:

#77858E