미리 정의 된 색상 코드를 사용하여 jpg를 png로 변환 하시겠습니까?
66 색을 기반으로 한지도가 몇 달 전에 jpg로 저장되었습니다.
나는 png로 변환 할 수 있고 66 색으로 설정할 수 있지만 어쨌든 66 색을 미리 정의 할 수 있다는 것을 발견했습니다. 예를 들어 # 888888에 가까운 색상은 878787이 아닌 # 888888로 변환됩니다. 878887.
한 가지 문제는지도에 66 색 (일반적으로 약 30 개)이 모두 포함되어 있지 않으므로 이제 4 가지 다른 유형의 흰색을 얻을 수 있습니다. (그래서이 솔루션이 필요합니다)
imagemagick에서도 가능합니까?
답변
원본 PNG 이미지 중 하나를 가져와 다음과 같이 고유 한 색상을 추출하여 원하는 66 색 중 66x1 픽셀 "견본" 을 만들 수 있습니다 .
magick original.png -unique-colors swatch.png
그런 다음 다음과 같이 적용 할 수 있습니다.
magick unhappy.jpg -remap swatch.png result.png
자세한 내용은 여기를 참조 하세요 .
다음은 구체적인 예입니다. 지도는 다음과 같습니다.

먼저 출력 이미지에 표시 할 5 가지 색상의 견본을 만듭니다.
magick xc:"rgb(10,100,140)" xc:"rgb(240,190,120)" xc:"rgb(70,130,30)" xc:"rgb(220,230,230)" xc:"rgb(40,80,50)" +append swatch.png

이제 원본의 모든 색상을 견본의 5 가지 색상으로 다시 매핑합니다.
magick map.jpg +dither -remap swatch.png result.png

또는 ImageMagick 이 다음과 같이 견본에 가장 적합한 색상을 선택하도록 할 수 있습니다.
magick map.jpg -colors 7 -unique-colors swatch.png

그리고 이전과 동일하지만 ImageMagick이 선택한 색상을 사용하여 다시 매핑합니다 .
magick map.jpg +dither -remap swatch.png result.png

16 진수 코드 ( 또는 HSL 또는 Lab 색상 )를 동일하게 사용할 수 있습니다.
convert xc:"#0a658c" xc:"#f0be78" xc:"#46821e" xc:"#dce6e6" xc:"#285032" +append swatch.png
위의 명령은 ImageMagick v7을 가정 합니다. 당신이 오래된 V6 구문을 사용 할 의무가있는 경우, 교체 magick
와 함께 convert
.