2016-12-12 60 views

回答

1

我研究這個我TIFF ImageIO plugin,而據我瞭解,在TIFF格式的方式Photoshop的存儲層的信息是完全私有的,而不是使用標準的TIFF機制,如多頁文檔利用所鏈接或嵌套IFDS(330/SubIFD)或文件類型(254/NewSubFileType)等

相反,它存儲層信息, 與該層的圖像數據沿,在Photoshop specific TIFF tag; 37724/ImageSourceData,其類型爲UNDEFINED(或「只是字節」)。幸運的是,該標籤的內容記錄在Adobe Photoshop® TIFF Technical Notes中。

此標記的內容始終以0結束的字符串"Adobe Photoshop Document Data Block"開頭。其餘內容是各種Photoshop資源,由Photoshop 4字節資源標識符8BIM標識,其後是每個單獨資源的4個字節的資源密鑰和4個字節的長度。

該塊中與Photoshop圖層相關的有趣資源是使用資源密鑰Layr標識的。這是在Photoshop文件格式中記錄在Layer and Mask Information Section中的相同結構。

還有一個不同的標籤34377/Photoshop,其中包含由Photoshop讀取和寫入的其他圖像資源。這也記錄在上述文件的Image Resources Section中。它確實包含了一些關於圖層的信息,但我不確定你需要寫多少。您可能需要使用「真實的東西」進行Photoshop安裝和測試。

我的代碼爲請閱讀這兩個結構的PSD ImageIO plugin,這可能值得一看,但它還不支持寫入。

當您可以編寫內容Photoshop TIFF標籤時,您應該能夠將它作爲TIFF IIOMetadata的一部分傳遞給TIFFImageWriter,寫入器會將其與您傳遞的任何其他元數據和像素數據一起寫入。所以,正如你所看到的,這些都是(大部分)記錄的,並且確實可以在Java中實現,但仍然不是完全微不足道的。

+0

感謝您的研究,細節和鏈接。爲開始實施過程提供了一個很好的基礎。 – jonD02