![imagemagick의 변환이 예기치 않게 배경색을 변경합니다.](https://linux55.com/image/45242/imagemagick%EC%9D%98%20%EB%B3%80%ED%99%98%EC%9D%B4%20%EC%98%88%EA%B8%B0%EC%B9%98%20%EC%95%8A%EA%B2%8C%20%EB%B0%B0%EA%B2%BD%EC%83%89%EC%9D%84%20%EB%B3%80%EA%B2%BD%ED%95%A9%EB%8B%88%EB%8B%A4..png)
내가 달성하려는 것은 웹 서버에서 간단한 그래픽을 끌어오고 imagemagick을 사용하여 이미지를 더 사용할 수 있도록 일부 색상을 변경하는 것입니다.
이것은 imagemagick 부분입니다:
convert traffic.png -transparent "rgb(240,240,240)" traffic2.png
convert traffic2.png -fill "rgb(200,200,200)" -opaque black traffic2.png
convert traffic2.png -fill "rgb(200,200,200)" -opaque "rgb(0,200,0)" traffic2.png
convert traffic2.png -fill "rgb(200,200,200)" -opaque "rgb(0,130,0)" traffic2.png
convert traffic2.png -fill "rgb(200,200,200)" -opaque "rgb(150,150,255)" traffic2.png
# convert traffic2.png -fill "rgb(200,200,200)" -opaque "rgb(0,0,255)" traffic2.png
내가 겪고 있는 문제는 현재 주석 처리된 행에 있습니다. 내가 보기에는 파란색의 모든 항목을 지정된 동일한 회색으로 변경하는 것 같지만, 일단 이 줄이 실행되면 이전에 투명했던 배경도 단색이 됩니다. 구문이 동일한 것을 보면 왜 이런 일이 발생하는지 잘 모르겠습니다. 로컬 컴퓨터(OS X)에서 이 명령을 시도하면 제대로 작동하지만 Raspberry Pi의 Debian에서는 뭔가 방해가 되는 것 같습니다.
답변1
귀하의 문제는 귀하의 질문에 대한 의견, 특히 IM 6.6.X와 6.7+ 사이의 변경 사항에서 우리가 논의한 것과 같습니다. 귀하의 명령은 Fedora 14 및 CentOS 5 및 6에서는 작동하지만 Ubuntu 12.10에서는 작동하지 않습니다.
- F14 (6.6.4-1 2011-11-03 Q16) - 유효
- CentOS 6(6.5.4-7 2012-05-07 Q16) - 유효함
- Ubuntu 12.10(6.7.7-10 2012-08-17 Q16)이 작동하지 않습니다.
나는 다음과 같은 제목의 IM 문서에서 이것을 발견했습니다.ImageMagick v6 예 - 색상 기본 사항 및 채널. 이 소개는 "이미지의 색상 바꾸기" 섹션에서 내 관심을 끌었습니다.
그러나 IM v6.2.7부터 이 연산자는 "-channel" 설정으로 제한됩니다. 따라서 색상(예: 파란색)을 투명도로 변환하려면 색상을 투명하게 만드는 알파 채널이 포함된 "채널"을 지정해야 합니다. 또한 투명도 정보를 보존하려면 이미지에 마스크 또는 알파 채널이 활성화되어 있는지 확인해야 합니다.
이 새로운 정보를 사용하여 여섯 번째 명령을 다음과 같이 변환했습니다.
$ convert traffic2.png -transparent "rgb(0,0,255)" traffic2.png
이것이 효과가 있었던 것 같습니다. OP는 이것이 그의 문제를 해결했음을 확인했습니다!
이전 명령
새 명령