RFR: 8160327: Support for thumbnails present in APP1 marker for JPEG [v7]
Brian Burkhalter
bpb at openjdk.org
Mon Mar 3 18:59:02 UTC 2025
On Mon, 3 Mar 2025 18:52:45 GMT, Brian Burkhalter <bpb at openjdk.org> wrote:
>> Yes, it probably is endianness, or endianness-related. My first design question is: should we care? Currently this PR infers whether we're looking for a JPEG or TIFF thumbnail based on other fields. If we strictly rely on the compression tag (250) instead: is that better/desirable? (That is: we could just throw an IOException in the rare case this field is missing/broken.)
>
>> 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.
>
> Probably the `Compression` tag should not be relied upon. While the Exif specification strangely states that for compressed thumbnails its value should be 6, there is no harm in its being 7.
> Currently this PR infers whether we're looking for a JPEG or TIFF thumbnail based on other fields.
Specifically the `JPEGInterchangeFormat` and `JPEGInterchangeFormatLength` fields. In the Exif 3.0 specification these have support level _mandatory_ for compressed thumbnails and _disallowed_ for uncompressed thumbnails.
> If we strictly rely on the compression tag (250) instead: is that better/desirable?
I don't think so.
> (That is: we could just throw an IOException in the rare case this field is missing/broken.)
This will indeed happen if `JPEGInterchangeFormat` does not point to a valid JPEG stream (SOI marker).
-------------
PR Review Comment: https://git.openjdk.org/jdk/pull/22898#discussion_r1978025262
More information about the client-libs-dev
mailing list