2017-02-24 130 views
0

雖然深化發展color-extractor我碰到與Imagick一個怪癖絆倒了。我用單個黑色透明像素圖像證實了這個問題。在Gimp下這個黑色顯示爲75%不透明,所以我猜它的alpha /透明度是25%。Imagick ALPHA VS不透明度

當我運行getColorValue(\Imagick::COLOR_OPACITY)我得到大約0.25,而我得到約0.75與getColorValue(\Imagick::COLOR_ALPHA)所以我期望的完全相反。

這是關於Imagick的問題(我用的php-imagick 3.4.3-1和ImageMagick的6.9.7-9)還是我倒相的不透明性和透明度的概念?

回答

0

不是一個怪癖,而是通過設計。大多數情況下,不透明度& alpha共享相同的數據通道,並且圖像格式/編碼器的上下文實現正確的值。我強調背景是關鍵。

這是一個關於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不同。 「我們現在支持alpha,以前不透明度」根據http://imagemagick.org/script/porting.php –

+0

我想這會回答我的問題,但我真的不明白這句話的含義。 – MatTheCat