유닉스 셸에서 그레이 스케일 이미지를 알파 채널 이미지로 변환


14

나는 그레이 스케일 이미지를 가지고있다. 원본 이미지의 검은 픽셀이 완전히 불투명 해지고 흰색 픽셀이 완전히 투명 해지고 50 % 회색 픽셀이 50 % 투명 해지는 등 모든 투명도가되도록 투명 PNG로 변환하고 싶습니다. 사이.

이것을 어떻게 할 수 있습니까?

(예, 이것은 회색 음영을 알파 채널변환 하는 것과 거의 같은 질문 이지만 ImageMagick 또는 NetPBM과 같은 명령 행 도구 만 사용 하여이 작업을 수행하는 방법을 알고 싶습니다 .)

위에서 언급 한 질문의 샘플 결과가 있습니다. 이 샘플은 명령 줄 도구 만 사용하여 달성하고자하는 결과입니다.

견본

투명도를 지원하는 뷰어에서이 PNG를 열면 의미를 알 수 있습니다.

답변:


17

Ooookay. 인터넷 검색을 많이하고 실제로 도움이되는 것보다 더 많은 ImageMagick 설명서를 읽은 후 여기에 답이 있습니다. 회색 음영 이미지가 있다고 가정하면 source.png여기에 내 명령이 있습니다.

하려면 메이크업 검정색 픽셀을 투명을 하고는 그대로 흰색 픽셀을 유지,이 명령을 실행합니다 :

 convert source.png -alpha copy -fx '#fff' result.png

대신하려면 흰색 픽셀을 투명하게 검은 색을 유지하는 것은, 사용 그대로 상태 :

 convert source.png -alpha copy -channel alpha -negate +channel -fx '#000' result.png

마지막 명령을 좀 더 철저하게 설명해 보겠습니다.

  • convert - ImageMagic 명령 (여러 가지 중 하나)
  • source.png - 그레이 스케일 소스 이미지.
  • -alpha copy - 이전 파일의 내용을 알파 채널에 복사합니다.
  • -channel alpha - 다음 연산자 만 알파 채널에 영향을 주도록 지정하십시오.
  • -negate- 알파 채널을 뒤집습니다 (이전 -chanel alpha의 이미지가 다른 부분에 영향을주지 않기 때문에 ).
  • +channel- 다음 연산자 만 색상 채널에 영향을 주어 더 이상 알파 채널을 수정하지 않아야 함을 지정합니다. (이것이 기본값이므로 첫 번째 간단한 예제에서 제공 할 필요가 없습니다.)
  • -fx '#000'- 컬러 채널 내용을 검은 색 픽셀로 바꿉니다. ( +channel알파 채널 때문에 영향을받지 않습니다.)

최종 -fx옵션 을 포함시키는 것이 중요합니다 . 그렇지 않으면 생성 된 이미지의 모든 반투명 픽셀이 색상을 유지합니다. 이 픽셀은 반투명하므로 명확하지 않을 수도 있지만 최종 결과는 예상 한 것과 다릅니다.

나는 ImageMagick 옵션 목록이 매우 유용하다는 것을 발견했다 .


내 목표를 달성하기 위해 꽤 좋은 설명, 내 이미지를 실제 그레이 스케일 이미지보다 더 어둡게 만드는 두 번째 명령을 사용할 때. 실제로, 그 투명도 이외의 회색 음영에있는 같은 색조를 얻기위한 나의 목표는 예상대로입니다. 그 아이디어는 무엇입니까?
Hardik Patel

매우 유용합니다. 감사합니다! :) 나는 나 자신을 위해 그것을 알아낼 필요가 없었기 때문에 기쁘다
Sam Watkins

사랑해!!!!!!
mescarra

그 종류의 코멘트는 아마이 채널을 통해 나에게 보내는 것이 더 좋다 : okcupid.com/profile/zrajm :)
zrajm

이유는 모르겠지만, 현재 버전 (ImageMagick 7.0.7-21)에서는 알파 채널없이 단색의 흰색 / 검은 색 이미지 만 얻을 수 있습니다. 명령 줄을 축 어적으로 복사하여 입력 / 출력 파일 경로 만 변경했습니다. 어쩌면 그들은 약간의 하위 호환되지 않는 변화를 만들었을 것입니다.
Sarge Borsch

0

ImageMagick 7.0에서는 위의 대답이 더 이상 필요하지 않습니다. 하지만 다음을 사용할 수 있습니다.

convert source.png -channel rgb -fx '#fff'result.png

일명, RGB 채널을 공백으로 채우고 이전처럼 알파를 채 웁니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.