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

Harald Kuhr duke at openjdk.org
Sat Mar 1 17:48:54 UTC 2025


On Wed, 26 Feb 2025 09:23:47 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.)~~
>> 
>> The images used in this test are contributed by Brian and me.
>
> Jeremy has updated the pull request incrementally with one additional commit since the last revision:
> 
>   8160327: trying to placate PR script
>   
>   The github script still classifies two of the sample jpgs as executable files, which it classifies as errors.

src/java.desktop/share/classes/com/sun/imageio/plugins/jpeg/ExifMarkerSegment.java line 182:

> 180:                 // file shows it can also sometimes be 0x60000. I've also observed it to be
> 181:                 // undefined, 0x0007, or several variations of 0x????0006. Similarly the same
> 182:                 // tag should be 0x0001 for TIFFs, but I also observed a case where it as 0x10000.

Isn't this ( 0x0001/0x0006 vs 0x1000/0x6000) just a matter of endianness in the TIFF structure? Some odd writers may also use LONG/32 bit values, even though the TiFF and Exif specs only mention SHORT/16 bit values for the compression tag. 

Compression 7 "New JPEG"  is not as per the Exif spec, but it can probably safely be treated the same way as "Old JPEG" compression 6 for Exif thumbnails.

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

PR Review Comment: https://git.openjdk.org/jdk/pull/22898#discussion_r1976464426


More information about the client-libs-dev mailing list