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

Brian Burkhalter bpb at openjdk.org
Fri Feb 14 18:01:24 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.

For test image preparation, [exiftool](https://exiftool.org/) might prove useful. For example, to extract a thumbnail from an Exif image:

`exiftool -b -ThumbnailImage image.jpg > thumb.jpg`
 
To embed a thumbnail:

`exiftool "-thumbnailimage<=thumb.jpg" image.jpg`

Unfortunately, it refuses to embed a PNG thumbnail in a file where the primary image is compressed, which would be useful to generate an Exif sample with a compressed primary image but an uncompressed thumbnail.

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

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


More information about the client-libs-dev mailing list