2013-04-29 2 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

,이 같은 작동합니다 :

ImageMagick이의 출력을 필요
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/' 

, 그것은 그렇게 가장 큰 색상 수를 정렬 하단에 있고, 그 라인을 취한 다음 라인에서 컬러 헥스를 추출합니다. 당신의 목표가 16 진수 대신 10 진수 rgb 값을 얻는 것이라면 sed 정규식을 조정할 수 있습니다.

그래서 예를 들어, 이미지, 출력은해야합니다 :

#77858E 
관련 문제