2016-04-21 61 views
2

我使用的是metadata-extractor的java版本2.8.1來讀取CR2文件。根據標籤的轉儲,有一個Exif縮略圖目錄,它聲稱有一個縮略圖偏移量和長度。但是,當我在ExifThumbnailDirectory對象上調用getThumbnailData()時,它將返回null。任何想法爲什麼?照片是用佳能EOS 70D相機拍攝的。當我用JPEG調用它時,代碼工作正常。源照片文件可以找到here元數據提取器中的getThumbnailData()返回一個CR2文件的空值

[Exif Thumbnail] - Thumbnail Offset(0x0201) = 80600 bytes 
[Exif Thumbnail] - Thumbnail Length(0x0202) = 15272 bytes 
[Exif Thumbnail] - Image Width(0x0100) = 5568 pixels 
[Exif Thumbnail] - Image Height(0x0101) = 3708 pixels 
[Exif Thumbnail] - Bits Per Sample(0x0102) = 16 16 16 bits/component/pixel 
[Exif Thumbnail] - Thumbnail Compression(0x0103) = JPEG (old-style) 
[Exif Thumbnail] - Photometric Interpretation(0x0106) = RGB 
[Exif Thumbnail] - Strip Offsets(0x0111) = 4472188 
[Exif Thumbnail] - Samples Per Pixel(0x0115) = 3 samples/pixel 
[Exif Thumbnail] - Rows Per Strip(0x0116) = 309 rows/strip 
[Exif Thumbnail] - Strip Byte Counts(0x0117) = 22883515 bytes 
[Exif Thumbnail] - Planar Configuration(0x011c) = Chunky (contiguous for each subsampling pixel) 
[Exif Thumbnail] - Unknown tag (0xc5d9) = 2 
[Exif Thumbnail] - Unknown tag (0xc6c5) = 1 
[Exif Thumbnail] - Unknown tag (0xc6dc) = 450 301 7 4 
[Exif Thumbnail] - Unknown tag (0xc5d8) = 1 
[Exif Thumbnail] - Unknown tag (0xc5e0) = 1 
[Exif Thumbnail] - Unknown tag (0xc640) = 1 2784 2784 
[File] - File Name(0x0001) = foo.CR2 
[File] - File Size(0x0002) = 27361411 bytes 
+0

看到這個相關問題https://github.com/drewnoakes/metadata-extractor/issues/149 –

回答

2

getThumbnailData()方法應該真的被刪除。當大多數人不使用它時,它會將縮略圖的所有數據分配到內存中。在這種情況下,CR2處理器不包括它。

最好的辦法是用在你的問題中所示的前兩個值:

[Exif Thumbnail] - Thumbnail Offset(0x0201) = 80600 bytes 
[Exif Thumbnail] - Thumbnail Length(0x0202) = 15272 bytes 

有了這些,和原來的文件,你可以拉出byte[]的圖像。至少,我99%肯定你可以:)

如果不是,請讓我知道,我們可以進一步調查。