Stefan Oltmann created IMAGING-370:
--------------------------------------

             Summary: TiffImageWriterLossless reorders directories even if not 
necessary
                 Key: IMAGING-370
                 URL: https://issues.apache.org/jira/browse/IMAGING-370
             Project: Commons Imaging
          Issue Type: Bug
            Reporter: Stefan Oltmann
         Attachments: new_taken_date.html, new_taken_date.jpg, original.html, 
original.jpg

When updating the metadata of a JPG file, such as modifying the taken date, 
using Commons Imaging version 1.0-alpha3, the EXIF directories are re-ordered, 
even when unnecessary. I anticipate that the directories should maintain the 
"normal" order, similar to how ExifTool preserves it during file writing.

Upon inspecting the source code at 
[https://github.com/apache/commons-imaging/blob/2144780f0171c4af1e79b598f0a75a37ba4c1308/src/main/java/org/apache/commons/imaging/formats/tiff/write/TiffImageWriterLossless.java],
 I observed a sophisticated logic for sorting elements to save space while 
preserving MakerNotes.

However, it seems there might be an issue with this logic because both IFD0 and 
ExifIFD appear to have sufficient space to precede MakerNotes. Notably, 
manipulating the taken date using ExifTool maintains the expected order, but 
Commons Imaging alters it.

I have spent considerable time attempting to understand the logic to rectify 
this problem. Unfortunately, I haven't been able to grasp it well enough to 
implement a fix.

To provide context on why I consider this a bug: In some manipulated files, 
IFD0 has a substantial offset after manipulation. In my application, I rely on 
reading the orientation flag from each file, necessitating it to be among the 
first bytes to minimize unnecessary loading of the file header from a cloud 
source.

[~gwlucas] , I noticed your recent involvement in a related logic deep dive 
(IMAGING-319). Could you guide me on what needs to be changed to achieve the 
desired behavior of having IFD0 come first?

[~damjan] , I saw your explanation on another issue regarding this process. 
Could you provide assistance in understanding and resolving this issue?

I have attempted various changes, but none have yielded the expected results so 
far. :( 

For additional information, an HTML dump of the files for debug can be 
generated using ExifTool: {{exiftool -htmlDump original.jpg > original.html}}



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

Reply via email to