2017-08-05 49 views
1

在Chrome中進行實驗表明rgba()顏色被解釋爲未預乘alpha。 (我還沒有嘗試過#RRGGBBAA的顏色,因爲Chrome默認不支持這些顏色。)CSS顏色預乘或不?

有沒有這方面的官方規格?

回答

0

如果CSS要使用預乘alpha,那就意味着例如rgb(255, 0, 0)在50%不透明度將必須是rgba(127.5, 0, 0, 0.5)。而rgba(255, 0, 0, 0.5)將是無效的。

The latest version of the spec提到了rgbrgba

前三個參數分別指定顏色的紅色,綠色和藍色通道。 0%表示sRGB色域中該顏色通道的最小值,100%表示最大值。 A等於a,但具有不同的範圍:0再次表示顏色通道的最小值,但255表示最大值。

這定義了非預乘值。如果數值是或可能是預先倍增的,這將不得不根據阿爾法值說明最大值。

The CSS3 speck2snowman69鏈接並不是特定的,但同樣沒有提及RGB值取決於alpha值的任何內容,並且包括如果它們被預倍增則無效的示例。

我不認爲API會使用預乘alpha,除非這些API預計能夠處理已經以某種方式進行了部分處理的圖像數據,例如在圖像處理庫中。預乘alpha通道是爲了簡化顏色混合計算而完成的。這對於最終用戶來說並不是什麼好事。