==> 2007年3月7日 星期三 <==

Ie不能顯示PNG的解決




  (希望各位不要嫌我的文章羅嗦:) 因我希望寫的文章有個案情記錄,如果我的方法無效,則至少后來的人少走几步路)
  前几天打開QQ空間,寫些文章,寫好后,想輸入驗證碼時,發現,驗證碼是個大紅叉!以為是QQ空間出問題了,沒去管它,無聊之下翻開Doxygen的幫助文件(CHM格式)看,結果發現很多圖片都是紅叉!奇怪了,查看圖片屬性,發現沒顯示的圖片都是PNG格式圖片的鏈接,因為CHM文件查看器調用的正是IE內核,我又打開QQ空間,把那驗證碼位置的圖片下載下來,一看,正是PNG格式的!而其它的圖片均沒事,奇怪了?!
  上百度搜索,有人說是IE6不能查看PNG是個BUG(請參照http://support.microsoft.com/kb/822071/zh-cn),但老大啊,我之前是能看的,且圖片也不只是4,097 字節或 4,098 字節,無論大小怎樣,都不能看。還有人說是HKEY_LOCAL_MACHINE/SOFTWARE/MICROSOFT/INTERNET EXPLORER/EMBEDEXTNTOCLSIDMAPPINGS/ 下加個.png的子鍵然后還要修改什么鍵值的,這個,我試過也是無效,在朋友正常的機子里發現這個路徑下也是沒有.png 子鍵的,也就是說這個說法也是不正確的。有人說重裝IE6,我重裝了,無效!有人說要裝IE7,無效!有人說要重裝系統,沒試過……
  后來查到外國的PNG格式開發主頁,在FAQ中講到IE顯示不了PNG的問題,其中給了几個方法,雖然沒有真正解決我的問題,但相信會有人對得上號的:)
  1、使用 開始->運行,在運行輸入框中輸入 「regsvr32 c:\windows\system32\pngfilt.dll」(然后點擊確定)
  注意,這個pngfilt.dll在有的系統中是在 c:\windows\system中的,要自己查看一下這文件在哪里,根據自己的系統修改一下路徑。如果在注冊時出現 「已加載 c:\windows\system32\pngfilt.dll,但沒有找到DllRegisterSever 輸入點。無法注冊這個文件」,則表明這個文件可能損壞了,你要去別的機子去Copy一個好的過來。再進行一次注冊。
  2、有些人是因為自己系統的設置問題,即任意打開一個文件夾,在上方菜單上選擇「工具」->「文件夾選項」->「文件類型」,選擇下方的「還原」按鈕。(如插圖1)。



  3、開始 -> 運行,在運行輸入框中輸入「Regedit」,到這個路徑「HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft \Windows\CurrentVersion\Internet Settings\Accepted Documents
」,在右邊右鍵「新建」->「字符串值」 緊接着最大的數字命名,我這里是3,故命名為4,并賦值為「image/png」。(見插圖2)。


  在國外網站并沒有找到真正的解決方法,后來,再搜索時,看到某個論壇的一個回復:http://www.msusenet.com/archive/topic.php/t-1874263358.html,這里面說到有個特別的注冊表位置[HKEY_CLASSES_ROOT\MIME\Database\Content Type\image/png] !雖然這個回復似乎沒有解決發言人的問題,但卻啟發了我,我打開Regedit,去到﹝HKEY_CLASSES_ROOT\MIME\Database﹞一看,天哪!!!我這個鍵完全是空的!!!什么都沒有!我再去朋友正常的機子(與我一樣是WinXPSP2)上一看,這個鍵里的項目不止一百項………………郁悶哪!于是我把他機子的﹝HKEY_CLASSES_ROOT\MIME﹞整個鍵導出到mime.reg,再到我機子導入,咦,奇怪,什么都沒有改變??什么都沒有增加!!這里我想到了鍵的權限問題,在MIME鍵上右鍵,發現,權限里居然一個人都沒有!于是我把MIME項整個刪除,導入,再右鍵查看權限,正常(自己賬號是全權控制的)!

  連忙打開IE,登錄QQ,哈哈!搞定,驗證碼出來了!!!!



0 意見: