将RGBA中的Alpha转换为CSS不透明度


Converting the Alpha in RGBA to CSS Opacity

我正在尝试从RGBA获得透明度,并将其转换为CSS不透明度。

因此,在获得图像像素的RGBA后,使用以下方法:

$rgb = imagecolorat($img, $j, $i);
$colors = imagecolorsforindex($img, $rgb);
// Printing colors, I get
// 255,255,255,127
// 249,161,66,126
//...

出于某种原因,透明度始终是整数(即127),而不是十进制数。但我想把127的数字转换成我可以在CSS中使用的东西:

opacity:0;filter:alpha(opacity=0)

然而,我无法弄清楚RGBA中的alpha和如何将其转换为CSS不透明度之间的联系。

我将为不同类型图像中的各种像素做这件事。PNG,JPG,GIF

有什么想法吗?

opacity = (127 - transparency) / 127.0

不透明度与透明度相反。

给定透明度范围为0。。255:

opacity = (255 - transparency) / 255.0 

如果您的最大值不同,只需将出现的两个255都替换为该值。