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
를하지만 똑같은 결과로 끝날.
이 검은 배경을 피할 수있는 방법에 대한 아이디어가 있습니까?
저는 일반적으로 명령 줄이나 Perl 또는 PHP 바인딩과 함께 IM을 사용하지만 RMagick은 사용하지 않습니다 ... 그러나 불투명도는 0..65535가 아닌 0..1입니다. 나는 틀릴 수도 있습니다. 단지 도우려고 노력하는 것입니다. –
시험해 주셔서 감사합니다. 그러나 0.3으로 시도해 보았습니다. 단색 검정색 배경과 단색 흰색 아이콘이 있습니다. 나는 그것이 여기에 수레를 허용하지 않으며, 0 (또는 1로, 그러나 나는 그 차이를 정말로 눈치 채지 않았다 :-))로 내림 았다고 생각한다. 내 배경이 30 % 검은 색으로 나타나므로 범위가 좋은 것 같습니다. –
또 다른 아이디어는 불투명도를 변경하기 전에 배경색을 'none'으로 설정하는 것입니다. –