2013-02-27 7 views
3

PNG 로고의 모든 검정색을 다른 색상으로 바꾸고 싶습니다. 나는 시도했다 :Imagemagick은 색상을 대체하지만 투명도를 유지합니다.

convert source.png -fill #123456 -opaque black out.png 

그러나 로고에는 변환되지 않는 투명 한 검은 색 픽셀이있다. 모든 검은 색 픽셀을 어떻게 바꿀 수 있습니까? 그러나 각 검은 색 픽셀을 투명하게 유지할 수 있습니까?

+0

문제 해결 방법을 찾으셨습니까? – nasaa

+0

명령의 시작 부분 근처에서'-channel RGBA'를 설정해보십시오. 어쩌면? –

답변

1

는이 같은 시도 할 수 있습니다 :

convert source.png -channel RGB -fuzz 99% -fill blue -opaque black dest.png 

을하지만 (iOS의 아이콘처럼 - 하나 개의 색상 및 투명도) 로고가 흑백이었던 경우에만 작동합니다.

0

나는 이것이 오래된 질문이라는 것을 알고 있지만, 믿을 수 없을만큼 오랜 시간을 보냈으며 아무런 대답도 찾지 못했습니다. 그러나 마침내 나는 그것을 알아 냈다.

참고 : 내 이미지는 검정색이며 알파로 회색 음영으로 표시됩니다. (즉, 내 모든 픽셀의 모양 :. R = 0, G = 0, B = 0, A = X 귀하의 픽셀이 아무것도 할 수있다, 나는 당신이 내 대답을 조정할 수있을 것입니다 생각

convert in_file.png -alpha off -fuzz 100% -fill blue -opaque '#000000' -alpha on -format png32 out_file.png32 

. 이미지가 알파 채널을 가지고 않은 경우에는 어떻게 여기 일이야?

  1. alpha off 이것이 의미하는 이미지가 알파 채널이 없다면, 다음 아무것도 변경 이후 작업은이없는 척하지 않습니다.
  2. 불행히도 012로 이미지를 저장할 때postfix, imagemagick은 가장 효율적인 형식의 색인을 사용하기로 결정합니다. 이유는 모르겠지만 내 이미지가 1 비트 표현 가능하다고 생각합니다 : 전체 투명도/완전 불투명 한 색상이며 알파 채널의 모든 미세한 세부 사항이 느슨합니다. 어쩌면 거기에 다른 해결책이 있지만 내 확실한 방법은 파일 이름에 '.png32'접미사를 사용하는 것입니다. 즉, 이미지는 8 비트 -8 비트 -8 비트 -8 비트 RGBA 형식으로 저장해야합니다. 당신이 당신의 이미지 파이프 라인이 투명하게 작동하지 않는 이유를 디버깅하려고하면

어쨌든, :

  • 창 상단 바에서 김프

  • 으로 이미지를 열 ...Indexed color... 또는 ...RGB color...과 같은 기타가 표시되어야합니다. Indexed color이 표시되면 파이프 라인이 이미 정상적으로 작동하고 있습니다. 잘못된 형식으로 저장됩니다.

그래, 이중 오류가 ... 당신은 내가 희망이 인터넷 검색의 시간 이후에 이것을 발견했을 때 그것은 바로 오류의 1에 관한 수십 번 ... 난 무슨 생각 추측있어 이미 수있다 노력하고 있습니다 ....

버전 : ImageMagick 6.8.당신이 tranparency이있는 경우 ImageMagick이에서 9-9 Q16 x86_64에 2017년 7월 31일 http://www.imagemagick.org

0

후 XX가 포함 할 수 있습니다 검은 색에 가까운 몇 퍼센트

convert source.png -alpha off -fuzz XX% -fill "#123456" -opaque black -alpha on out.png 


을 시도합니다. 순수 검정색 만 바꾸고 싶다면 XX = 0으로 설정할 수 있습니다.

위의 코드는 투명도 아래의 검은 색을 포함하여 모든 검은 색 픽셀을 새 색으로 변경합니다.

완전히 불투명 한 검정색을 새로운 색상으로 변경하고 투명도 아래의 검정색 만 변경하려는 경우 색상에 알파 값을 포함하십시오. IM 7을 사용하고 마법 (magick)로 변환을 변경하는 경우 그래서

convert source.png -fuzz XX% -fill "#123456FF" -opaque "graya(0)" -alpha on out.png 


을 시도합니다.

관련 문제