2012-07-09 141 views
3

我想從RGBA獲取透明度並將其轉換爲CSS不透明度。將RGBA中的Alpha轉換爲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

任何想法?

回答

3

opacity = (127 - transparency)/127.0

+0

這個_only_的工作原理是因爲GD函數被破壞並失去一位分辨率(即使用0..127而不是0..255) – Alnitak 2012-07-09 11:11:06

0

不透明度與透明度相反。

鑑於0透明度範圍.. 255:

opacity = (255 - transparency)/255.0 

如果你的最大價值是不同的只是用該值替換255兩次出現。

+1

這樣只會給你一半的透明度,因爲在RGBA格式的透明度值有127 – slash197 2012-07-09 11:03:58

+0

@ slash197一個最大值是正確的,我測試了它,它給半透明度。無論如何說明這一點? – Abs 2012-07-09 11:05:10

+0

'opacity =(127 - transparency)/ 127.0' – slash197 2012-07-09 11:05:59