You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@commons.apache.org by GitBox <gi...@apache.org> on 2022/02/13 14:11:59 UTC
[GitHub] [commons-imaging] gwlucastrig opened a new pull request #203: IMAGING-319: Correct length calculation in EXIF rewriter
gwlucastrig opened a new pull request #203:
URL: https://github.com/apache/commons-imaging/pull/203
I added comments to the JIRA ticket on this item at [IMAGING-319](https://issues.apache.org/jira/browse/IMAGING-319)
Unfortunately, it will be hard for me to create a JUnit test to specifically test this change without actually adding the user's original file (which is large) to our code distribution.
The following text shows the problem.
The users' test program read the data and then re-wrote it using the Commons Imaging library. In the code below, his original File variable is named "source" and the rewritten version is named "result".
ImageMetadata metadata2 = Imaging.getMetadata(source); // or result
JpegImageMetadata jpegMetadata2 = (JpegImageMetadata) metadata2;
TiffImageMetadata exif2 = jpegMetadata2.getExif();
String s2 = exif2.toString();
System.out.println("\n" + s2 + "\n");
The printout for the original EXIF block (with many elements removed) comes up as:
Exif:
ExifVersion: 48, 50, 51, 50
DateTimeOriginal: '2021:10:28 13:47:07'
DateTimeDigitized: '2021:10:28 13:47:07'
Unknown Tag (0x9010): '-05:00'
Unknown Tag (0x9011): '-05:00'
Unknown Tag (0x9012): '-05:00'
Unknown tag 0x9010 is fine. But if you perform the same thing on this result, it comes up with the first character in Tag 0x9010 as a comma rather than a negative sign as shown below:
Exif:
Unknown Tag (0x9010): , 05:00
Unknown Tag (0x9011): '-05:00'
Unknown Tag (0x9012): '-05:00'
The attached fix repairs the problem and causes the EXIF tag to be printed correctly.
Here's the full code for the test program:
import java.io.BufferedOutputStream;
import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
import org.apache.commons.imaging.ImageReadException;
import org.apache.commons.imaging.ImageWriteException;
import org.apache.commons.imaging.Imaging;
import org.apache.commons.imaging.common.ImageMetadata;
import org.apache.commons.imaging.formats.jpeg.JpegImageMetadata;
import org.apache.commons.imaging.formats.jpeg.exif.ExifRewriter;
import org.apache.commons.imaging.formats.tiff.TiffImageMetadata;
import org.apache.commons.imaging.formats.tiff.write.TiffOutputSet;
public class CommonsIssue319 {
public static void main(String[] args) throws ImageReadException, IOException, ImageWriteException {
File source = new File("iPhone12-geotag.JPG");
File result = new File("editted-iPhone12-geotag.JPG");
final ImageMetadata metadata = Imaging.getMetadata(source);
final JpegImageMetadata jpegMetadata = (JpegImageMetadata) metadata;
final TiffImageMetadata exif = jpegMetadata.getExif();
String s = exif.toString();
System.out.println("\n" + s + "\n");
TiffOutputSet outputSet = exif.getOutputSet();
BufferedOutputStream bufferedOutputStream = new
BufferedOutputStream(new FileOutputStream(result));
new ExifRewriter().updateExifMetadataLossless(source,
bufferedOutputStream, outputSet);
bufferedOutputStream.flush();
bufferedOutputStream.close();
ImageMetadata metadata2 = Imaging.getMetadata(result);
JpegImageMetadata jpegMetadata2 = (JpegImageMetadata) metadata2;
TiffImageMetadata exif2 = jpegMetadata2.getExif();
String s2 = exif2.toString();
System.out.println("\n" + s2 + "\n");
}
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: issues-unsubscribe@commons.apache.org
For queries about this service, please contact Infrastructure at:
users@infra.apache.org
[GitHub] [commons-imaging] kinow commented on pull request #203: IMAGING-319: Correct length calculation in EXIF rewriter
Posted by GitBox <gi...@apache.org>.
kinow commented on pull request #203:
URL: https://github.com/apache/commons-imaging/pull/203#issuecomment-1059725853
That was quite the detective work @gwlucastrig :clap: The change is really small, but I couldn't understand just reading the code. Going to have to re-read the JIRA and your description here :nerd_face: but it's looking good! Thanks Gary!
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: issues-unsubscribe@commons.apache.org
For queries about this service, please contact Infrastructure at:
users@infra.apache.org
[GitHub] [commons-imaging] gwlucastrig closed pull request #203: IMAGING-319: Correct length calculation in EXIF rewriter
Posted by GitBox <gi...@apache.org>.
gwlucastrig closed pull request #203:
URL: https://github.com/apache/commons-imaging/pull/203
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: issues-unsubscribe@commons.apache.org
For queries about this service, please contact Infrastructure at:
users@infra.apache.org