我在处理透明 PNG 图像时遇到问题,该图像在图像非透明部分的边缘周围显示黑色抖动像素伪影。它仅在 Internet Explorer 中执行此操作,并且仅在使用它的 Javascript 文件中执行此操作。
这就是我要说的...
http://70.86.157.71/test/test3.htm
(链接现已失效)
...注意右下角的女孩。她在 IE8 中有一些瑕疵(我没有在以前的 IE 版本中测试过它,但我假设它可能做同样的事情)。它在 Firefox 和 Chrome 中完美运行。图像从 Javascript 文件加载以产生鼠标悬停效果。
如果您单独加载图片,效果很好。
这是图片...
http://70.86.157.71/test/consultant2.png
如何解决这个问题?
图像是在 Photoshop CS3 中制作的。
我读过有关删除 Gama 的内容,但这显然是在以前版本的 Photoshop 中,当我在 TweakPNG 中加载它时,它没有 Gama。
最佳答案
已修复!
我一直在努力解决同样的问题,并且刚刚取得了突破!我们已经确定,如果您为图像提供背景颜色或图像,则 png 会在其上方正确显示。黑色边框不见了,但现在你有一个不透明的背景,这几乎违背了目的。
然后我想起了我遇到的一个rgba to ie filter converter。 (感谢迈克尔贝斯特)。所以我想知道如果我给我的问题 png 一个 ie 过滤背景模拟 rgba(255,255,255,0) 会发生什么,完全期望它不起作用,但我们还是试试吧......
.item img {
background: transparent;
-ms-filter: "progid:DXImageTransform.Microsoft.gradient(startColorstr=#00FFFFFF,endColorstr=#00FFFFFF)"; /* IE8 */
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr=#00FFFFFF,endColorstr=#00FFFFFF); /* IE6 & 7 */
zoom: 1;
}
急!再见黑色,你好在 ie7 和 8 中工作的 alpha channel 。淡入和淡出你的 png,或者在屏幕上动画它们 - 这一切都很好。
关于javascript - IE8 中的 PNG 透明度问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1251416/