[ https://issues.apache.org/jira/browse/IMAGING-319?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Bruno P. Kinoshita updated IMAGING-319: --------------------------------------- Description: I try to use TiffOutputSet to generate a new image. However, if a tag that contains String, the program may miss the first character of the String. {noformat} {noformat} import java.io.*; 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 LibraryTest { public static void main(String[] args) throws ImageReadException, IOException, ImageWriteException { File source = new File("./assets/iPhone12-geotag.JPG"); File result = new File("./assets/results/editted-iPhone12-geotag.JPG"); final ImageMetadata metadata = Imaging.getMetadata(source); final JpegImageMetadata jpegMetadata = (JpegImageMetadata) metadata; final TiffImageMetadata exif = jpegMetadata.getExif(); TiffOutputSet outputSet = exif.getOutputSet(); BufferedOutputStream bufferedOutputStream = new BufferedOutputStream(new FileOutputStream(result)); new ExifRewriter().updateExifMetadataLossless(source, bufferedOutputStream, outputSet); } } This is the sample code. Tag value in original image !image-2021-11-26-16-01-58-645.png! Tag value in output image !image-2021-11-26-16-04-12-185.png! was: I try to use TiffOutputSet to generate a new image. However, if a tag that contains String, the program may miss the first character of the String. import java.io.*; 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 LibraryTest { public static void main(String[] args) throws ImageReadException, IOException, ImageWriteException { File source = new File("./assets/iPhone12-geotag.JPG"); File result = new File("./assets/results/editted-iPhone12-geotag.JPG"); final ImageMetadata metadata = Imaging.getMetadata(source); final JpegImageMetadata jpegMetadata = (JpegImageMetadata) metadata; final TiffImageMetadata exif = jpegMetadata.getExif(); TiffOutputSet outputSet = exif.getOutputSet(); BufferedOutputStream bufferedOutputStream = new BufferedOutputStream(new FileOutputStream(result)); new ExifRewriter().updateExifMetadataLossless(source, bufferedOutputStream, outputSet); } } This is the sample code. Tag value in original image !image-2021-11-26-16-01-58-645.png! Tag value in output image !image-2021-11-26-16-04-12-185.png! > updateExifMetadataLossless lost the first character of a String > --------------------------------------------------------------- > > Key: IMAGING-319 > URL: https://issues.apache.org/jira/browse/IMAGING-319 > Project: Commons Imaging > Issue Type: Bug > Components: Format: JPEG > Affects Versions: 1.0-alpha2 > Reporter: Sicheng Yang > Assignee: Bruno P. Kinoshita > Priority: Major > Attachments: Screen Shot 2021-11-26 at 4.01.06 PM-1.png, Screen Shot > 2021-11-26 at 4.01.21 PM-1.png, iPhone12-geotag.JPG > > Time Spent: 40m > Remaining Estimate: 0h > > I try to use TiffOutputSet to generate a new image. However, if a tag that > contains String, the program may miss the first character of the String. > {noformat} > {noformat} > import java.io.*; > 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 LibraryTest { > public static void main(String[] args) throws ImageReadException, > IOException, ImageWriteException > { File source = new File("./assets/iPhone12-geotag.JPG"); > File result = new File("./assets/results/editted-iPhone12-geotag.JPG"); > final ImageMetadata metadata = Imaging.getMetadata(source); final > JpegImageMetadata jpegMetadata = (JpegImageMetadata) metadata; final > TiffImageMetadata exif = jpegMetadata.getExif(); TiffOutputSet > outputSet = exif.getOutputSet(); BufferedOutputStream > bufferedOutputStream = new BufferedOutputStream(new > FileOutputStream(result)); new > ExifRewriter().updateExifMetadataLossless(source, bufferedOutputStream, > outputSet); } > } > > This is the sample code. > Tag value in original image > !image-2021-11-26-16-01-58-645.png! > Tag value in output image > !image-2021-11-26-16-04-12-185.png! -- This message was sent by Atlassian Jira (v8.20.10#820010)