Package org.apache.sanselan.formats.tiff

Examples of org.apache.sanselan.formats.tiff.TiffImageMetadata$Directory


final class SanselanExifReader extends AbstractExifReader{

    static TiffImageMetadata getExif(File jpegImageFile)
    throws IOException, ImageReadException, ImageWriteException{
        TiffImageMetadata exif = null;
        JpegImageMetadata jpegMetadata = (JpegImageMetadata) Sanselan.getMetadata(jpegImageFile);
        if (null != jpegMetadata) {
            // note that exif might be null if no Exif metadata is found.
            exif = jpegMetadata.getExif();
        }
View Full Code Here


    }

    @Override
    public Date readOriginalTime(File jpeg) throws IOException, ParseException{
        try{
            final TiffImageMetadata exif = SanselanExifReader.getExif(jpeg);
            String dateString = (String) exif.findField(TiffConstants.EXIF_TAG_DATE_TIME_ORIGINAL).getValue();
            //interpret the dateString as an UTC dateTime value
            return parseExifDate(dateString);
        } catch (ImageReadException irx){
            throw toIOException(irx, jpeg);
        } catch (ImageWriteException iwx){
View Full Code Here

public class SanselanExifWriter implements GpsExifWriter {
    final private ExifRewriter rewriter = new ExifRewriter();

    static TiffOutputSet getExif(File jpegImageFile)
            throws IOException, ImageReadException, ImageWriteException{
        TiffImageMetadata exif = SanselanExifReader.getExif(jpegImageFile);
        TiffOutputSet outputSet = null;
        if (null != exif) {
            outputSet = exif.getOutputSet();
        }
        // if file does not contain any exif metadata, we create an empty
        // set of exif metadata.
        if (null == outputSet){
            outputSet = new TiffOutputSet();
View Full Code Here

  public Map<String, String> getHeaders(final InputStream inputStream) throws IOException {
    try {
      IImageMetadata metadata = Sanselan.getMetadata(IOUtils.toByteArray(inputStream));
      JpegImageMetadata jpegMetadata = (JpegImageMetadata) metadata;
      if (jpegMetadata != null) {
        TiffImageMetadata exif = jpegMetadata.getExif();
        if (exif != null) {
          Map<String, String> headers = new HashMap<String, String>();
          List<TiffField> fields = exif.getAllFields();

          for (TiffField field : fields) {
            String key = field.getTagName();
            String value = this.getFieldValue(field);
            headers.put(key, value);
View Full Code Here

      printTagValue(jpegMetadata, TiffConstants.GPS_TAG_GPS_LONGITUDE);

      System.out.println();

      // simple interface to GPS data
      TiffImageMetadata exifMetadata = jpegMetadata.getExif();
      if (null != exifMetadata)
      {
        TiffImageMetadata.GPSInfo gpsInfo = exifMetadata.getGPS();
        if (null != gpsInfo)
        {
          String gpsDescription = gpsInfo.toString();
          double longitude = gpsInfo.getLongitudeAsDegreesEast();
          double latitude = gpsInfo.getLatitudeAsDegreesNorth();
View Full Code Here

  }

  public IImageMetadata getMetadata(ByteSource byteSource, Map params)
      throws ImageReadException, IOException
  {
    TiffImageMetadata exif = getExifMetadata(byteSource, params);

    JpegImageMetadata.Photoshop photoshop = getPhotoshopMetadata(byteSource);

    if (null == exif && null == photoshop)
      return null;
View Full Code Here

      IImageMetadata metadata = Sanselan.getMetadata(jpegImageFile);
      JpegImageMetadata jpegMetadata = (JpegImageMetadata) metadata;
      if (null != jpegMetadata)
      {
        // note that exif might be null if no Exif metadata is found.
        TiffImageMetadata exif = jpegMetadata.getExif();

        if (null != exif)
        {
          // TiffImageMetadata class is immutable (read-only).
          // TiffOutputSet class represents the Exif data to write.
          //
          // Usually, we want to update existing Exif metadata by changing
          // the values of a few fields, or adding a field.
          // In these cases, it is easiest to use getOutputSet() to
          // start with a "copy" of the fields read from the image.
           outputSet = exif.getOutputSet();
        }
      }

      if(null==outputSet)
        outputSet =  new TiffOutputSet();
View Full Code Here

    if (null == metadata)
      return;
    JpegImageMetadata jpegMetadata = (JpegImageMetadata) metadata;

    // note that exif might be null if no Exif metadata is found.
    TiffImageMetadata exif = jpegMetadata.getExif();
    if (null == exif)
      return;

    List fields = exif.getAllFields();
    for (int i = 0; i < fields.size(); i++)
    {
      TiffField field = (TiffField) fields.get(i);
      checkField(imageFile, field);
    }
View Full Code Here

      JpegImageMetadata originalMetadata = (JpegImageMetadata) Sanselan
          .getMetadata(imageFile);
      assertNotNull(originalMetadata);

      TiffImageMetadata oldExifMetadata = originalMetadata.getExif();
      assertNotNull(oldExifMetadata);

      ByteSource stripped;
      {
        ByteArrayOutputStream baos = new ByteArrayOutputStream();
        new ExifRewriter().removeExifMetadata(byteSource, baos);
        byte bytes[] = baos.toByteArray();
        File tempFile = File.createTempFile("removed", ".jpg");
        Debug.debug("tempFile", tempFile);
        tempFile.deleteOnExit();
        IOUtils.writeToFile(bytes, tempFile);

        Debug.debug("Output Segments:");
        stripped = new ByteSourceArray(bytes);
        new JpegUtils().dumpJFIF(stripped);

        assertTrue(!hasExifData(tempFile));
      }

      {
        TiffOutputSet outputSet = oldExifMetadata.getOutputSet();
        //      outputSet.dump();

        ByteArrayOutputStream baos = new ByteArrayOutputStream();

        new ExifRewriter().updateExifMetadataLossy(stripped, baos,
            outputSet);

        byte bytes[] = baos.toByteArray();
        File tempFile = File.createTempFile("inserted" + "_", ".jpg");
        Debug.debug("tempFile", tempFile);
        //      tempFile.deleteOnExit();
        IOUtils.writeToFile(bytes, tempFile);

        Debug.debug("Output Segments:");
        new JpegUtils().dumpJFIF(new ByteSourceArray(bytes));

        //        assertTrue(!hasExifData(tempFile));

        JpegImageMetadata newMetadata = (JpegImageMetadata) Sanselan
            .getMetadata(tempFile);
        assertNotNull(newMetadata);
        TiffImageMetadata newExifMetadata = newMetadata.getExif();
        assertNotNull(newExifMetadata);
        //        newMetadata.dump();

        compare(oldExifMetadata, newExifMetadata);
      }
View Full Code Here

            .getMetadata(imageFile);
        if (null == oldMetadata)
          continue;
        assertNotNull(oldMetadata);

        TiffImageMetadata oldExifMetadata = oldMetadata.getExif();
        if (null == oldExifMetadata)
          continue;
        assertNotNull(oldExifMetadata);
        oldMetadata.dump();

        //      TiffImageMetadata tiffImageMetadata = metadata.getExif();
        //      Photoshop photoshop = metadata.getPhotoshop();

        TiffOutputSet outputSet = oldExifMetadata.getOutputSet();
        //      outputSet.dump();

        ByteArrayOutputStream baos = new ByteArrayOutputStream();
        rewriter.rewrite(byteSource, baos, outputSet);
        byte bytes[] = baos.toByteArray();
        File tempFile = File.createTempFile(name + "_", ".jpg");
        Debug.debug("tempFile", tempFile);
        //      tempFile.deleteOnExit();
        IOUtils.writeToFile(bytes, tempFile);

        Debug.debug("Output Segments:");
        new JpegUtils().dumpJFIF(new ByteSourceArray(bytes));

        //        assertTrue(!hasExifData(tempFile));

        JpegImageMetadata newMetadata = (JpegImageMetadata) Sanselan
            .getMetadata(tempFile);
        assertNotNull(newMetadata);
        TiffImageMetadata newExifMetadata = newMetadata.getExif();
        assertNotNull(newExifMetadata);
        //        newMetadata.dump();

        compare(oldExifMetadata, newExifMetadata);
      }
View Full Code Here

TOP

Related Classes of org.apache.sanselan.formats.tiff.TiffImageMetadata$Directory

Copyright © 2018 www.massapicom. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.