Alpha透明PNG在Mobile Safari中无法正确显示

时间:2009-09-03 16:46:26

标签: iphone png transparency mobile-safari

我在各种网站上使用一些半透明的PNG作为背景图像。这些通常类似于具有30%不透明白色层的1x1图像。

我注意到Mobile Safari没有正确显示它们,给它们一个更深/灰色的色调。

这是一个MobileSafari错误(我无法想象),还是我需要对我的网页或PNG做些不同的事情?

(以下是我创建PNG的方法:在Photoshop中,创建一个1x1透明画布。在第1层中绘制一个白色矩形。将不透明度设置为30%,将Web保存为具有透明度的24位PNG。)

3 个答案:

答案 0 :(得分:72)

我试图使用具有部分透明度的1像素PNG来做一些简单的DIV背景,以便为背景图片上方的某些文本制作半透明框。在我试用iPhone之前,它在各种浏览器中看起来都很棒。它正在做部分透明度,但是你用这种奇怪的灰色阴影而不是预期的结果。

然后我尝试了那些链接的红色&蓝色测试。我们第一次看到它们时它们看起来都很好,然后点击刷新使它们变得灰暗!我再次尝试使用新的浏览器窗口,它又恢复正常,啊,你提到的不一致性再次发生。那么我只是在物理上旋转了iPhone,当它从横向模式变为纵向模式时,颜色转移到了灰色版本!

所有W3C PNG部分透明度测试在iPhone上看起来都很完美。然而,它确实没有通过Gamma测试。在排除伽玛作为一个可能的原因后,我把这个狩猎了几个小时,但无处可去。我甚至做了一个我自己的渐变,从0到100%透明,以确保它不是我创建图像的过程。果然,这很有效,所以我的过程很好。

然后我有这个天才,如果文件大于1像素怎么办?所以我做了2像素宽,1像素高,20%透明(alpha为80%)。 Bam ..工作!我尝试了1x1,1x2,2x1,2x2,8x8的各种组合。除了单像素版本外,它们都能正常工作。

我回去检查了上面的链接测试,发现他们使用了1个像素图像来表示所有阴影。啊哈!

你有它, Mobile Safari需要至少2个像素来处理半透明的PNG文件

答案 1 :(得分:3)

使用尺寸不是1x1的图像。

(有事可做的人的缩写回复)

答案 2 :(得分:0)

在查看两台设备(我的Mac和iPod Touch)上的网站后,我认为您在这里看到的是屏幕可以产生什么颜色的差异,而不是渲染引擎中的错误。有许多因素可以解决这种差异,例如,便携式显示器的对比度可能不会太大,以节省电力,使设备更便宜等等。