2

我正在使用元数据提取器的 java 版本 2.8.1来读取 CR2 文件。根据标签的转储,有一个 Exif Thumbnail 目录,它声称有一个缩略图偏移量和长度。但是,当我调用getThumbnailData()ExifThumbnailDirectory对象时,它返回 null。知道为什么吗?这张照片是用佳能 EOS 70D 相机拍摄的。当我用 JPEG 调用它时,代码可以正常工作。源照片文件可以在这里找到。

[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
4

1 回答 1

2

getThumbnailData()方法确实应该被删除。当大多数人不使用它时,它将缩略图的所有数据分配到内存中。在这种情况下,CR2 处理器不包括它。

最好的办法是使用问题中显示的前两个值:

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

有了这些和原始文件,您可以提取byte[]图像。至少,我有 99% 的把握可以:)

如果没有,请告诉我,我们可以进一步调查。

于 2016-04-21T14:56:08.520 回答