解决ie7不能显示png图像的过程

解决ie7不能显示png图像的过程
经过一个下午和一晚上的艰苦奋战,终于解决了这一困扰我很久的难题。
昨天安装新出来的两个软件,一是声卡的驱动,一是audition 3,一直在等待这一软件,把系统的区域,语言调成英语和美国,在英文系统下工作稳定,再次有很多软件不认中文路径。装好后,再调成中文和china,把系统做好c区备份,高兴了没几分钟,上网,网页上图片的地方出现×,以前也出项这一问题,把ie重新装一次,没问题,这一次又把ie装一次,上网依旧不能显示png格式的图片,麻烦来了,一个下午坐在电脑前,仔细思考问题产生的原因。系统把中文调到英文,再从英文调成中文,为什么不显示图片了那?再次把系统调成英文,依然不显示图片。
没办法,以前碰到这个问题,解决的方式是瞎猫碰到死老鼠,没有从根本上解决问题,就是说解决的方式不对。
搜索网上,看那些兄弟们的解决方式,大概是以下几种,其他没什么理由的就不再写出。

一.HKEY_LOCAL_MACHINE/SOFTWARE/MICROSOFT/INTERNETEXPLORER/EMBEDEXTNTOCLSIDMAPPINGS/ 下加.png的子键,修改以下数值。重启电脑,还是不能显示图片。这种方式没理由,我后来查了其他可以显示png图片的电脑系统中的注册表没有这一个键值。这不是解决问题的方法。


二.运行,“regsvr32 c:\windows\system32\pngfilt.dll,找不到DllRegisterSever 输入点,按他们说的就要copy一个新的pngfilt.dll到dllcache和system32中,没用啊,ie7中就有这个文件,我对比了大少,版本都没有错。还是重启电脑,看看是否好,问题依旧。

三.在HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Internet Settings\Accepted Documents建立image/png,重启电脑,依然不能显示图片,后来我到其他的电脑查看,也没有这个键值,这是想当然尔。


四。HKEY_CLASSES_ROOT\MIME\Database\Content Type\image/png,这个键值我的电脑也是好的,怎么办?
我觉得最后一步很有道理,它是ie启动后的加载点,这时候本本已经发热了,时间也到了0点,没办法,关机休息一下吧,在床上也在深思,不知不觉什么时候睡着了,梦中也在弄这个问题,搞笑啊,醒来后的第一件事就是回复到装机的原始那个系统,再装ie,导出mime注册表。然后又恢复到有问题的系统,(我把系统做了备份,有问题时好恢复,恢复很快,几分钟),删除HKEY_CLASSES_ROOT\MIME\,再导入没有问题的第一次装ie7的mime,呵呵,上网可以显示图片了,看来问题出在这个键上,我导出有问题系统的mime注册表,有120k,那个开始安装系统的,只有78k,如果替换的话,问题是解决了,可是ie和其他很多软件的关联就会中断,系统又要修复。不能这样做。
无奈,打开比较软件,仔细比较两个注册表的值。一共2000多个值,好在软件把不同的值标志加亮显示。除了有问题系统多出的键值外,其他和好系统的一样啊。傻了。怎么办?反复的看注册表中每一个键的值,image中没一个错误啊,到时视频中有一个乱码键,好奇心试试,把这个乱码键删除。呵呵,上网,可以显示图片。看来问题的根结在注册表中这个键的乱码。想想可能在系统中装了中文软件,当换成英文的时候不能显示汉字,只能出现乱码,当回复中文时,乱码还是存在,这样是显示不了图片啊,可是这个键是关于视频的,怎么和image有关系啊,因为ie启动的时候加载dllserver,出现乱码,图片显示就会不正常,把这个键改为video,重启电脑,ok,一切正常。到此,问题圆满解决。
看来网上的只能提供思路,有些也是没有理由的,凭自己的想象而作出。开始怀疑ie7是不是中文下和英文下装的文件是不是变了,呵呵,以为是ie本身的问题。
乱码,系统的大敌,程序设计的大敌。
这是很好的一课,虽然用了我一下午加一晚上,收获大大的哈。这里只提供我的一个解决过程,不知其他还有更好的方式吗?