2007年7月1日 星期日

『 02.XX - PNG : 20070701 』

這幾天對於解無壓縮的 Indexed PNG 圖檔有了點進展。對於之前畫面會扭曲的原因,後來發現是因為每個讀到的資料區塊的第一個位元都要略過… (別問我為什麼,我只是發現它並非屬於在真正的資料裡頭) 結果就真的,每第一個位元都跳過後,解出來的資料就完全正確!

之後很快的就進行下一步… 解無壓縮的 24 bits RGB 格式圖檔,結果馬上在解資料上就錯了。當時還蠻火大的 ^%$#@! 因為代表之前寫好的解無壓縮的程式碼在 RGB 格式會有錯… 那會不會代表我要針對不同格式都要有一套解壓縮的方法?那哪寫的完…

後來靜下心來,看圖檔的資料… 慢慢的對照… 結果發現是 LEN 給的並不是真正所要讀的長度。天啊~ 之前要跳過每第一個位元,現在又要因為 RGB 而計算真正的資料長度… 為什麼不像 DEFLATE 規格裡寫的那麼簡單?看來我要再找一天來看看 libpng & zlib 的程式碼 (不好懂),看到底是要怎樣寫才對…

最後附上剛剛的成果:顯示一張 24 bits 的 PNG 圖檔。


2 則留言:

  1. OK.
    這ㄧ次有看但沒有懂
    不過仔細看了有點懂
    但在仔細看就又不懂
    最後結論仍是看不懂

    但, yeah man it's pretty cool. Keep it up man...

    回覆刪除
  2. 最近太忙了... 進度完全暫停... 慘!

    回覆刪除