2013-05-21 28 views
0

我有一個PNG文件中使用的libpng庫中創建。該文件完全打開在Windows圖片查看器和MS畫圖,但kview(在Linux RHEL5)或QuickTime圖片查看器(Windows上)打開失敗 - 前者報告「的libpng讀取錯誤,而後者報告的文件被損壞類似。 。問題被認爲是試圖在Linux上使用ImageMagick庫來處理PNG時考慮到PNG打開一些應用精細,它似乎並不認爲該文件確實已損壞,所以我懷疑一些問題,版本的兼容性,但我不肯定。我試着在網上搜索,但無法找到根本原因或任何信息,這個問題的解決方案。有人可以請指導我在此?無法使用kview或PictureViewer打開PNG文件;打開細跟其他觀衆

+0

試試這個:http://entropymine.com/jason/tweakpng/ – leonbloy

+0

@leonbloy謝謝!不幸的是,我沒有選擇使用這些工具手動修改PNG文件;相反,我想確定是什麼導致了一些觀衆的問題,並修改我的代碼以規避問題。 順便說一句,我也嘗試使用tweakpng工具檢查有問題的PNG文件。檢查視圖沒有報告任何錯誤,但該工具的「圖像查看器」無法顯示該文件 - 它報告了「文件意外結束」錯誤。任何關於根本原因的指針和解決問題的方法都會非常有幫助。 – so2

+0

很難沒有更多的信息說,它似乎是在IDAT chunkds一些越野車/非標zlib的編碼。你不能發佈一個示例圖像嗎? – leonbloy

回答

0

從您的評論貼示例圖像來看,問題是你的PNG缺少結尾IEND塊 - 你可以通過打開tweakpng並檢查目視結構,或選擇「檢查有效性-F5」。有些可預見的是,那些PNG被某些觀衆展示並被其他人拒絕。

如果您使用的libpng,看來你忘了打電話給png_write_end()

+0

謝謝!這解決了問題!事實證明,我確實沒有調用'png_write_end()';修改我的代碼來調用該方法後,創建的PNG文件在kview上打開。 – so2