go.image/tiff 的一些問題

來源:互聯網
上載者:User
這是一個建立於 的文章,其中的資訊可能已經有所發展或是發生改變。

最近給 go.image/tiff
增加了 Tile/Gray/Gray16/RGB16bit 等格式的支援.
還有一些特性以後會陸續完善.

Go語言映像庫的基本思路是能盡量提供完善的解碼功能(當然只支援檔案的第一個映像).
而編碼功能則比較有限, 主要是支援基本的不同顏色模型, TIFF特有的特性應該不會完整支援.

最近有使用者反饋產生的tiff在Mac系統不能正常瀏覽(Issue6421).
而我自己的Win7/64可以正常開啟有問題的映像. 用 tiffinfo 也沒有看到什麼異常的Tag(有問題的已經修改之後).

之後無意中用GIMP也不能開啟Mac有問題的tiff影像.
既然問題已經重現, 尋找原因就容易多了.

初步分析之後, 發現問題主要是針對非RGB的映像(灰階和調色盤).
然後發現, go.image/tiff的Encode函數對非RGB的影像都寫了ExtraSamples標籤,
而這個函數只有對波段數大於RGB的3的時候才會起作用(具體看TIFF Spec的介紹).

當然, 有些容錯性較好的程式可以忽略無效的ExtraSamples標籤(比如Windows下的很多程式).
但是, 如果嚴格按照TIFF規範的話, 包含ExtraSamples標籤的灰階和調色盤格式確實是有問題的.
修複這個問題之後(CL13779043), GIMP就可以正常工作了(Mac部分還在等待使用者反饋).

經過這個BUG發現, 還是要非常瞭解TIFF格式規範, 不然實現中很容易帶入一些錯誤的理解.
當然, go.image/tiff 的測試也需要繼續完善.

關於TIFF的介紹請參考: TIFF6.0格式簡介

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.