2016-04-21 7 views
2

Я использую версию java версии 2.8.1 из metadata-extractor для чтения файла CR2. В соответствии с дампом тегов есть каталог Exif Thumbnail, и он утверждает, что есть сокращение и длина уменьшенного изображения. Однако, когда я вызываю getThumbnailData() на объект ExifThumbnailDirectory, он возвращает null. Любая идея почему? Фотография была сделана с помощью камеры Canon EOS 70D. Код работает нормально, когда я вызываю его с помощью JPEG. Файл исходной фотографии можно найти here.getThumbnailData() в метаданных-экстракторе, возвращающем null для файла 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% уверен, что вы можете :)

Если нет, сообщите мне, и мы сможем исследовать дальше.