RFR: 8160327: Support for thumbnails present in APP1 marker for JPEG [v2]

Brian Burkhalter bpb at openjdk.org
Fri Feb 14 17:55:12 UTC 2025


On Thu, 2 Jan 2025 06:49:19 GMT, Jeremy <duke at openjdk.org> wrote:

>> This adds support for parsing thumbnails in an APP1 Exif marker.
>> 
>> This builds on an unfinished proposal by Brian Burkhalter (around 2016). In that previous work the only additional meta info he parsed was the image creation time; this PR similarly includes the same property. (I can't speak to why he included that property, but it looks like he has a lot of experience with ImageIO so I trust his judgment.)
>> 
>> The test addresses the original images attached to the ticket plus a few extra images I found on my computer that include unusual properties. (Possibly those images are malformed, but if they exist in the wild and other platforms support them then I'd prefer to support them too.)
>
> Jeremy has updated the pull request incrementally with one additional commit since the last revision:
> 
>   8160327: fixing typo so `thumbnailPos` can be zero
>   
>   The `thumbnailLength` cannot be zero, but the position can be.

> In that previous work the only additional meta info he parsed was the image creation time; this PR similarly includes the same property. (I can't speak to why he included that property [...].

Note that the `DateTime` value extracted by `ExifMarkerSegment.getImageCreationTime` is that of the primary image, not the thumbnail. This is included to support the `ImageCreationTime` element of the Image I/O Standard Metadata Format Specification `javax_imageio_1.0`.

For reference see the [Exif 3.0 specification](https://iptc.org/news/exif-3-0-released-featuring-utf-8-support), although the code from 2016 was based on Exif 2.x. The sections most pertinent to thumbnails are:

- 4.5.8 Basic Structure of Thumbnail Data
- 4.6.9.2 Thumbnail (1st IFD) Support Levels

>From section 4.6.9.2 in particular, there does not appear to be any thumbnail-specific metadata worth extracting.

-------------

PR Comment: https://git.openjdk.org/jdk/pull/22898#issuecomment-2659934595
PR Comment: https://git.openjdk.org/jdk/pull/22898#issuecomment-2659938631


More information about the client-libs-dev mailing list