因为某种不可告人的需要,安装了Adobe Flash CS4,安装后,发现出现了一个奇怪的问题
用IE浏览网页时,很多网站莫名其妙的出现了红色的叉叉,有部分图片不能显示,但不是全部。
而换用其他的浏览器则正常。查这些不能显示的图片,发现都是png图片,保存到本地,用XP默认的图片查看器,又可以正常查看。
毫无疑问,问题出在了IE上 。
因为对PNG图片格式的诞生,有些许了解,所以定位问题的原因,对我来说就相对简单了。
PNG图片格式,是因为GIF图片的版权关系,而诞生的。
而 微软 不知是处于什么原因,对PNG一直不太友好(也许GIF格式的作者和微软有一腿,嘿嘿 ) ,直到IE6,都没有很好的支持PNG格式的图片。
而且,在IE里,对PNG图片格式的支持,本身也有别于其他的图片格式,例如:JPG,GIF,BMP等。对于PNG图片的支持,是采用了额外的动态链接库的方式,这个链接库,叫 pngfilt.dll ,IE使用这个链接库来进行PNG图片的显示,实际是解码工作。
pngfilt.dll 位于 System32 目录下,有兴趣的朋友,可以自己去看看它的属性,可以看到如下的信息:
大家,看描述:IE PNG plugin image decoder
清楚明了吧。
如果这个DLL的注册信息出了问题,或者DLL文件本身出了问题,那么IE就无法显示PNG图片了。
说到这里,问题也就自然而然的解决了。
只要重新注册一下这个动态链接库,就OK了。
- 关闭所有的IE窗口
- 开始–>运行,输入 regsvr32 pngfilt.dll,回车
- 如果没有出错,再打开IE就OK了;如果报错,则说明pngfilt.dll损坏了,请到别电脑上COPY一个过来