昨天晚上打开ie7的时候就发现那个默认页里面的一些图片无法显示了,当时也没太在意,因为还有其他事情要做。今天早上用ie7打开网页的时候发现很多图片不显示了,然后就换Firefox看了下一些正常,看来我的ie7是出问题了。于是就赶快baidu和google,但结果不尽如意啊,后来在同事的帮助下才在网上看到一篇算是总结的不错的文章,这才彻底解决这个问题:
两种方案:
第一步,判断问题的症结所在,开始->运行,在运行输入框中输入“regsvr32 c:\windows\system32\pngfilt.dll”(然后点击确定) ,这个时候可能返回两种提示结果,这有着不同的解决方法。
第一种:注册成功,而且您安装的是IE6。那么说明,注册表问题的可能性很大。注册表的问题。解决ie不显示png的方法就是
方法一:
1、打开注册表,依次展开
HKEY_CLASSES_ROOT\MIME\Database\Content Type\image/png
2、找到Extension键名,将数值数据改为.png
3、找到Image Filter CLSID键名,数值数据改为
{A3CCEDF7-2DE2-11D0-86F4-00A0C913F750}
方法二:
在注册表里查询 x-m4v,把所有带乱码的项都删除掉
如果,显示的是无法注册文件、无法找到这类的,这个时候问题就是IE中控制png显示的pngfilt.dll文件丢失,或出现了版本错误。解决方法就是:
下载IE6下的pngfilt.dll文件,然后同时复制到system32文件夹及system32\dllcache文件夹里,否则system32\dllcache文件夹里的原文件会不断进行还原,然后,在运行输入框中输入“regsvr32 c:\windows\system32\pngfilt.dll”(然后点击确定)重新注册pngfilt.dll,
如果您使用的是IE6,操作到此为止;
如果您使用的是IE7,请继续往下操作,下载IE7的pngfilt.dll,再次覆盖原来的IE6的pngfilt.dll文件,注意还是两个文件夹都要覆盖,然后问题基本解决。这次就不用在注册pngfilt.dll文件了。
总结:
出现IE无法显示png图片的原因很多,但基本上说就是pngfilt.dll文件注册出现问题或者是由于安装QuickTime或其他软件导致pngfilt.dll被替换成其他版本所造成的,因此只要使用正确的pngfilt.dll文件版本覆盖皆可解决问题。
在解决方法中,之所以IE7要多重复一步覆盖,是因为IE6的pngfilt.dll文件可以直接注册,而IE7的pngfilt.dll文件则不能被直接注册,因此先用IE6注册,再用IE7替换。
我的问题就是这样解决的,ie下无法显示png的问题原因很复杂,解决方法也很多,希望这篇文章能够帮得了大家。
附件,提供IE6 IE7 pngfilt.dll文件下载: