Examples of JpegImageMetadata


Examples of org.apache.sanselan.formats.jpeg.JpegImageMetadata

    {
      TiffOutputSet outputSet = null;

      // note that metadata might be null if no metadata is found.
      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.
View Full Code Here

Examples of org.apache.sanselan.formats.jpeg.JpegImageMetadata

    {
      TiffOutputSet outputSet = null;

      // note that metadata might be null if no metadata is found.
      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.
View Full Code Here

Examples of org.apache.sanselan.formats.jpeg.JpegImageMetadata

        try {

            // get all metadata stored in EXIF format (ie. from JPEG or TIFF).
            IImageMetadata metadata = Sanselan.getMetadata(imageStream, fileName);
            if (metadata instanceof JpegImageMetadata) {
                JpegImageMetadata jpegMetadata = (JpegImageMetadata) metadata;

                // Jpeg EXIF metadata is stored in a TIFF-based directory structure
                // and is identified with TIFF tags.
                // Here we look for the "x resolution" tag, but
                // we could just as easily search for any other tag.
                // see the TiffConstants file for a list of TIFF tags.

                // populate various interesting EXIF tags.
                populateImageMetadata(imageAttributes, jpegMetadata, TiffConstants.TIFF_TAG_XRESOLUTION);
                populateImageMetadata(imageAttributes, jpegMetadata, TiffConstants.TIFF_TAG_YRESOLUTION);
                populateImageMetadata(imageAttributes, jpegMetadata, TiffConstants.TIFF_TAG_DATE_TIME);
                populateImageMetadata(imageAttributes, jpegMetadata, TiffConstants.EXIF_TAG_DATE_TIME_ORIGINAL);
                populateImageMetadata(imageAttributes, jpegMetadata, TiffConstants.EXIF_TAG_CREATE_DATE);
                populateImageMetadata(imageAttributes, jpegMetadata, TiffConstants.EXIF_TAG_ISO);
                populateImageMetadata(imageAttributes, jpegMetadata, TiffConstants.EXIF_TAG_SHUTTER_SPEED_VALUE);
                populateImageMetadata(imageAttributes, jpegMetadata, TiffConstants.EXIF_TAG_APERTURE_VALUE);
                populateImageMetadata(imageAttributes, jpegMetadata, TiffConstants.EXIF_TAG_BRIGHTNESS_VALUE);
                populateImageMetadata(imageAttributes, jpegMetadata, TiffConstants.GPS_TAG_GPS_LATITUDE_REF);
                populateImageMetadata(imageAttributes, jpegMetadata, TiffConstants.GPS_TAG_GPS_LATITUDE);
                populateImageMetadata(imageAttributes, jpegMetadata, TiffConstants.GPS_TAG_GPS_LONGITUDE_REF);
                populateImageMetadata(imageAttributes, jpegMetadata, TiffConstants.GPS_TAG_GPS_LONGITUDE);

                ArrayList<?> items = jpegMetadata.getItems();
                for (int i = 0; i < items.size(); i++) {
                    Object item = items.get(i);
                    if (item instanceof TiffImageMetadata.Item) {
                        TiffImageMetadata.Item tiffItem = (TiffImageMetadata.Item)item;
                        imageAttributes.add(new ImageMetadata(tiffItem.getKeyword(), tiffItem.getText()));
View Full Code Here

Examples of org.apache.sanselan.formats.jpeg.JpegImageMetadata

    {
      TiffOutputSet outputSet =  null;

      // note that metadata might be null if no metadata is found.
      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.
View Full Code Here

Examples of org.apache.sanselan.formats.jpeg.JpegImageMetadata

    //System.out.println(metadata);

    if (metadata instanceof JpegImageMetadata)
    {
      JpegImageMetadata jpegMetadata = (JpegImageMetadata) metadata;

      // Jpeg EXIF metadata is stored in a TIFF-based directory structure
      // and is identified with TIFF tags.
      // Here we look for the "x resolution" tag, but
      // we could just as easily search for any other tag.
      //
      // see the TiffConstants file for a list of TIFF tags.

      System.out.println("file: " + file.getPath());

      // print out various interesting EXIF tags.
      printTagValue(jpegMetadata, TiffConstants.TIFF_TAG_XRESOLUTION);
      printTagValue(jpegMetadata, TiffConstants.TIFF_TAG_DATE_TIME);
      printTagValue(jpegMetadata,
          TiffConstants.EXIF_TAG_DATE_TIME_ORIGINAL);
      printTagValue(jpegMetadata, TiffConstants.EXIF_TAG_CREATE_DATE);
      printTagValue(jpegMetadata, TiffConstants.EXIF_TAG_ISO);
      printTagValue(jpegMetadata,
          TiffConstants.EXIF_TAG_SHUTTER_SPEED_VALUE);
      printTagValue(jpegMetadata, TiffConstants.EXIF_TAG_APERTURE_VALUE);
      printTagValue(jpegMetadata, TiffConstants.EXIF_TAG_BRIGHTNESS_VALUE);
      printTagValue(jpegMetadata, TiffConstants.GPS_TAG_GPS_LATITUDE_REF);
      printTagValue(jpegMetadata, TiffConstants.GPS_TAG_GPS_LATITUDE);
      printTagValue(jpegMetadata, TiffConstants.GPS_TAG_GPS_LONGITUDE_REF);
      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();

          System.out.println("  " + "GPS Description: " + gpsDescription);
          System.out.println("  " + "GPS Longitude (Degrees East): " + longitude);
          System.out.println("  " + "GPS Latitude (Degrees North): " + latitude);
        }
      }

      // more specific example of how to manually access GPS values
      TiffField gpsLatitudeRefField = jpegMetadata
          .findEXIFValue(TiffConstants.GPS_TAG_GPS_LATITUDE_REF);
      TiffField gpsLatitudeField = jpegMetadata
          .findEXIFValue(TiffConstants.GPS_TAG_GPS_LATITUDE);
      TiffField gpsLongitudeRefField = jpegMetadata
          .findEXIFValue(TiffConstants.GPS_TAG_GPS_LONGITUDE_REF);
      TiffField gpsLongitudeField = jpegMetadata
          .findEXIFValue(TiffConstants.GPS_TAG_GPS_LONGITUDE);
      if (gpsLatitudeRefField != null && gpsLatitudeField != null
          && gpsLongitudeRefField != null
          && gpsLongitudeField != null)
      {
        // all of these values are strings.
        String gpsLatitudeRef = (String) gpsLatitudeRefField.getValue();
        RationalNumber gpsLatitude[] = (RationalNumber[]) (gpsLatitudeField
            .getValue());
        String gpsLongitudeRef = (String) gpsLongitudeRefField
            .getValue();
        RationalNumber gpsLongitude[] = (RationalNumber[]) gpsLongitudeField
            .getValue();

        RationalNumber gpsLatitudeDegrees = gpsLatitude[0];
        RationalNumber gpsLatitudeMinutes = gpsLatitude[1];
        RationalNumber gpsLatitudeSeconds = gpsLatitude[2];

        RationalNumber gpsLongitudeDegrees = gpsLongitude[0];
        RationalNumber gpsLongitudeMinutes = gpsLongitude[1];
        RationalNumber gpsLongitudeSeconds = gpsLongitude[2];

        // This will format the gps info like so:
        //
        // gpsLatitude: 8 degrees, 40 minutes, 42.2 seconds S
        // gpsLongitude: 115 degrees, 26 minutes, 21.8 seconds E

        System.out.println("  " + "GPS Latitude: "
            + gpsLatitudeDegrees.toDisplayString() + " degrees, "
            + gpsLatitudeMinutes.toDisplayString() + " minutes, "
            + gpsLatitudeSeconds.toDisplayString() + " seconds "
            + gpsLatitudeRef);
        System.out.println("  " + "GPS Longitude: "
            + gpsLongitudeDegrees.toDisplayString() + " degrees, "
            + gpsLongitudeMinutes.toDisplayString() + " minutes, "
            + gpsLongitudeSeconds.toDisplayString() + " seconds "
            + gpsLongitudeRef);

      }

      System.out.println();

      ArrayList<?> items = jpegMetadata.getItems();
      for (int i = 0; i < items.size(); i++)
      {
        Object item = items.get(i);
        System.out.println("  " + "item: " + item);
      }
View Full Code Here

Examples of org.apache.sanselan.formats.jpeg.JpegImageMetadata

          if (formatName.startsWith("JPEG")) {
            setCodecV("jpg");
            IImageMetadata meta = Sanselan.getMetadata(inputFile.getFile());

            if (meta != null && meta instanceof JpegImageMetadata) {
              JpegImageMetadata jpegmeta = (JpegImageMetadata) meta;
              TiffField tf = jpegmeta.findEXIFValue(TiffConstants.EXIF_TAG_MODEL);

              if (tf != null) {
                setModel(tf.getStringValue().trim());
              }

              tf = jpegmeta.findEXIFValue(TiffConstants.EXIF_TAG_EXPOSURE_TIME);
              if (tf != null) {
                setExposure((int) (1000 * tf.getDoubleValue()));
              }

              tf = jpegmeta.findEXIFValue(TiffConstants.EXIF_TAG_ORIENTATION);
              if (tf != null) {
                setOrientation(tf.getIntValue());
              }

              tf = jpegmeta.findEXIFValue(TiffConstants.EXIF_TAG_ISO);
              if (tf != null) {
                // Galaxy Nexus jpg pictures may contain multiple values, take the first
                int[] isoValues = tf.getIntArrayValue();
                setIso(isoValues[0]);
              }
View Full Code Here

Examples of org.apache.sanselan.formats.jpeg.JpegImageMetadata

        // jmd.getExif().getOutputSet());
        iRewriter.writeIPTC(imageByte, bOutputStream, newMetaData);
        // TODO: should be an eRewriter to get back the Exif part!

        IImageMetadata metaData = Sanselan.getMetadata(f);
        JpegImageMetadata jMetaData = (JpegImageMetadata) metaData;
        assert (jMetaData != null);
        TiffImageMetadata exif = jMetaData.getExif();
        TiffOutputSet outputSet = exif.getOutputSet();
        TiffOutputField field = outputSet.findField(TiffConstants.EXIF_TAG_PROCESSING_SOFTWARE);
        if (null != field) {
      outputSet.removeField(TiffConstants.EXIF_TAG_PROCESSING_SOFTWARE);
      String fieldString = "Edited by DeExifier. andreas.reichart@gmail.com";
      TiffOutputField newField = new TiffOutputField(ExifTagConstants.EXIF_TAG_PROCESSING_SOFTWARE,
        TiffFieldTypeConstants.FIELD_TYPE_ASCII, fieldString.length(), fieldString.getBytes());
      TiffOutputDirectory outDirectory = outputSet.getOrCreateExifDirectory();
      outDirectory.add(newField);
        }

        eRewriter.updateExifMetadataLossless(imageByte, bOutputStream, outputSet);

    }

    // if (removeExif & removeIptc) {
    // TODO: removeExif & removeIptc
    // }

    // OK, works: recompressed image is already empty.
    if (!removeExif && !removeIptc) {

        IImageMetadata metadata = Sanselan.getMetadata(f);
        JpegImageMetadata jpegMetadata = (JpegImageMetadata) metadata;
        if (jpegMetadata != null) {
      TiffImageMetadata exif = jpegMetadata.getExif();
      if (exif != null) {
          TiffOutputSet outputSet = exif.getOutputSet();
          TiffOutputSet emptySet = new TiffOutputSet();
          new ExifRewriter().removeExifMetadata(imageByte, bOutputStream);
      }
View Full Code Here
TOP
Copyright © 2018 www.massapi.com. 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.