2017-02-24 9 views
0

developping color-extractor을 생성하는 동안 Imagick으로 버클을 우연히 발견했습니다. 나는 하나의 흑색 투명 픽셀 이미지로 문제를 확인했다. Gimp에서이 검은 색은 75 % 불투명도 인으로 표시되므로 알파/투명도는 25 %입니다.Imagick ALPHA 대 OPACITY

getColorValue(\Imagick::COLOR_OPACITY)을 실행하면 대략 0.25가되는 반면 getColorValue(\Imagick::COLOR_ALPHA)으로는 0.75가됩니다. 예상했던 것과 정확히 반대입니다.

Imagick에 대한 문제입니까? (저는 PHP-imagick 3.4.3-1 및 ImageMagick 6.9.7-9를 사용하고 있습니다) 아니면 불투명도와 투명도의 개념을 뒤집을 수 있습니까?

답변

0

기발한 것이 아니라 디자인에 의한 것입니다. 대부분 opacity & 알파는 동일한 데이터 채널을 공유하며 이미지 형식/코더의 컨텍스트는 올바른 값을 구현합니다. 그리고 스트레스가 열쇠입니다.

이 문제는 Imagick [..]과 관련이 있습니까? 아니면 불투명도와 투명도의 개념을 뒤집을 수 있습니까?

두 기능이 어떻게 구현되는지 살펴 보겠습니다. 시피

PixelGetOpacityQuantum

return(ClampToQuantum(wand->pixel.opacity)); 

PixelGetAlphaQuantum

return(QuantumRange-ClampToQuantum(wand->pixel.opacity)); 

는 모두 0 양자 한계 사이에 결합 된 동일한 데이터를 반환한다.

PixelGetOpacityQuantum은 정확한 데이터 값을 반환하지만, PixelGetAlphaQuantum은 일반적인 색상 형식/사양에서 예상하는대로 조정/반전됩니다. 모든 상황!

+0

불투명도와 투명도가 고유 값으로 추측되지만 Imagick은 투명도 대신 불투명도를 반환하고 그 반대의 경우는 내 문제입니다. – MatTheCat

+0

사실 ImageMagick 버전 7.x.x는 ImageMagick 6.x.x와 다릅니다. http://imagemagick.org/script/porting.php에 따르면 "이전에 불투명 한 알파를 지원합니다." –

+0

내 질문에 대답 할 수 있지만 실제로 문장의 의미는 알 수 없습니다. – MatTheCat