我试图编写一些颜色操作代码,并在 alpha 上停留了很长一段时间,然后我(2 小时后)意识到浏览器以不同的方式渲染 rgba。
我创建了这个测试:http://jsbin.com/adekez/2/ http://jsbin.com/adekez/2/添加/编辑查看代码
以下是 OSX Lion 中 4 个浏览器的结果:https://i.stack.imgur.com/i9wSw.jpg https://i.stack.imgur.com/i9wSw.jpg
这是一个在白色之上背景为 rgba(0,0,0,0.5) 的元素。
我的十六进制计算器显示:FF÷2 = 7F.8,这意味着
Safari #808080 是正确的
Firefox #7F7F7F 关闭了 1
#7E7E7E 的 Opera 晚 2 点
Chrome 的 #929292 还差得很远
这是怎么回事,这是 Chrome 中的错误还是我只是不知道颜色(true)?
首先
好吧,实际上 SafariandFirefox 都是正确的:0xFF = 255
, 255 / 2 = 127.5
. So 128
可能是正确的(0x80
), 但是也127
(0x7F
) - 取决于浏览器的舍入约定。
问题说明
这些都是舍入问题。我不太明白why存在舍入问题,因为 0.5 可以用二进制数表示而不会损失精度,但实际上存在舍入问题:
Opera:
Chrome:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)