2015-01-27 4 views
1

PNG 이미지 (PNG 96x96 96x96 + 0 + 0 8 비트 RGB 2.05KB 0.000u 0 : 00.000)가 있습니다. 완전히 투명한 배경과 흰색 기호 (테두리는 투명에서 완전 흰색까지의 그라데이션) 아이콘입니다. 전체 아이콘 불투명도를 초기 값의 30 %로 줄이려고합니다. convert으로, 나는 그런 식으로 작업을 수행 할 수 있습니다RMagick 투명 색상 대체

convert input.png -channel a -evaluate Multiply 0.3 +channel output.png

identify 결과 이미지에 대한 동일한 출력을 제공합니다. 그러나 Ruby 스크립트에서이 작업을 수행하고자하므로 RMagick을 사용하고 있습니다.

source = Magick::Image::read(INPUT)[0] 
source.write(OUTPUT)

이 작동 :

여기에 약간의 테스트입니다 나는 똑같은 이미지를 가지고있다. identify과 동일한 출력. 이제, 불투명도를 변경할 수 있습니다 :

source = Magick::Image::read(INPUT)[0] 
source.opacity = (Magick::QuantumRange * 0.3).floor 
source.write(OUTPUT)

결과는 잘못된 것입니다 : 불투명도가 감소되기 전에 검은 색이 추가됩니다. 30 %의 불투명도 검정색 배경과 30 %의 불투명도 흰색 아이콘 (아이콘의 경우 원하는 값)으로 끝납니다. 여기에 identify 출력입니다 : PNG 최대 96x96 최대 96x96 + 0 + 0 8 비트 RGB 1.06KB 0.000u 0 : 00.000

내가 내 출력 파일 이름 앞에 PNG32:을 추가했습니다. identify 출력이 변경되면 (PNG 96x96 96x96 + 0 + 0 8 비트 sRGB 1.29KB 0.000u 0 : 00.000) 시각적 결과는 동일하게 유지됩니다.

나는 배경 색상을 지정하려고 :

source = Magick::Image::read(INPUT)[0] 
source.opacity = (Magick::QuantumRange * 0.3).floor 
source.write(OUTPUT) do 
    self.background_color = 'none' 
end

를하지만 똑같은 결과로 끝날.

이 검은 배경을 피할 수있는 방법에 대한 아이디어가 있습니까?

+0

저는 일반적으로 명령 줄이나 Perl 또는 PHP 바인딩과 함께 IM을 사용하지만 RMagick은 사용하지 않습니다 ... 그러나 불투명도는 0..65535가 아닌 0..1입니다. 나는 틀릴 수도 있습니다. 단지 도우려고 노력하는 것입니다. –

+0

시험해 주셔서 감사합니다. 그러나 0.3으로 시도해 보았습니다. 단색 검정색 배경과 단색 흰색 아이콘이 있습니다. 나는 그것이 여기에 수레를 허용하지 않으며, 0 (또는 1로, 그러나 나는 그 차이를 정말로 눈치 채지 않았다 :-))로 내림 았다고 생각한다. 내 배경이 30 % 검은 색으로 나타나므로 범위가 좋은 것 같습니다. –

+0

또 다른 아이디어는 불투명도를 변경하기 전에 배경색을 'none'으로 설정하는 것입니다. –

답변

1

이것은 대부분의 사용자가 명령 줄에서 함께 성공을 가지고있는 하나와 유사한 명령과 같습니다 나중에 참조 할 수 있도록

img.quantum_operator(MultiplyQuantumOperator, 0.3, AlphaChannel) 

, 내가 here을 발견했다.

+0

이미지 처리에 대해 많이 알지 못해서 정확히 무엇을하는지 확신 할 수 없습니다. 마크,이 질문 좀 할 수 있니? 모든 도움에 감사드립니다! 나는 막혔다. 그리고 나는 무엇이 계속되고 있는지 모른다. http : // stackoverflow.co.kr/questions/39576629/how-do-you-use-rmagick-to-apply-a-mask-transparent-background –