[ 
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)

Reply via email to