Examples of TIFFField


Examples of org.apache.sanselan.formats.tiff.TiffField

            return null;
        }

        Wpt result = new Wpt();
        Number[] r3;
        TiffField e;

        /* map datum */
        e = gpsIfd.findField(TiffConstants.GPS_TAG_GPS_MAP_DATUM);
        if(e == null){
            warn("GPS datum missing. Assuming WGS84.");
        } else {
            String svalue = (String) e.getValue();
            if(svalue.equals("")){
                System.err.println("Warning: GPS datum missing. Assuming WGS84.");
            } else if(!svalue.toUpperCase().replaceAll("[^0-9A-Z]", "").equals("WGS84")){
                throw new MetadataException("GPS datum is " + svalue +
                    ". Currently only coordinates in the WGS84 "+
                    "map datum can be handled.");
            }
        }

        /* latitude */
        e = gpsIfd.findField(TiffConstants.GPS_TAG_GPS_LATITUDE);
        if(e == null){
           throw new MetadataException("GPS latitude missing.");
        }
        r3 = (Number[]) e.getValue();
        e = gpsIfd.findField(TiffConstants.GPS_TAG_GPS_LATITUDE_REF);
        if(e == null){
            String sysprop = System.getProperty("DefaultGPSLatitudeRef");
            char s0 = (sysprop == null || sysprop.length() == 0)
            ? 'X'
            : sysprop.toUpperCase().charAt(0);
            if(s0 != 'N' && s0 != 'S'){
                throw new MetadataException("GPS latitude found but GPS latitude reference missing or invalid.\n"+
                    "    To use the GPS latitude information set the DefaultGPSLatitudeRef system property to N or S, e. g.\n"+
                    "    java -DDefaultGPSLatitudeRef=N -jar gpsdings.jar ...");
            }
            result.setLat(asBigDecimalDegrees(r3, String.valueOf(s0)));
        } else {
            result.setLat(asBigDecimalDegrees(r3, (String) e.getValue()));
        }

        /* longitude */
        e = gpsIfd.findField(TiffConstants.GPS_TAG_GPS_LONGITUDE);
        if(e == null){
           throw new MetadataException("GPS longitude missing.");
        }
        r3 = (Number[]) e.getValue();
        e = gpsIfd.findField(TiffConstants.GPS_TAG_GPS_LONGITUDE_REF);
        if(e == null){
            String sysprop = System.getProperty("DefaultGPSLongitudeRef");
            final char s0 = (sysprop == null || sysprop.length() == 0)
            ? 'X'
            : sysprop.toUpperCase().charAt(0);
            if(s0 != 'E' && s0 != 'W'){
                throw new MetadataException("GPS longitude found but GPS longitude reference missing or invalid.\n"+
                    "    To use the GPS longitude information set the DefaultGPSLongitudeRef system property to W or E, e. g.\n"+
                    "    java -DDefaultGPSLongitudeRef=E -jar gpsdings.jar ...");
            }
            result.setLon(asBigDecimalDegrees(r3, String.valueOf(s0)));
        } else {
            result.setLon(asBigDecimalDegrees(r3, (String) e.getValue()));
        }

        /* elevation */
        e = gpsIfd.findField(TiffConstants.GPS_TAG_GPS_ALTITUDE);
        if(e != null){
            double alti = ((Number) e.getValue()).doubleValue();
            e = gpsIfd.findField(TiffConstants.GPS_TAG_GPS_ALTITUDE_REF);
            if (e == null){
                warn("GPSAltitudeRef missing. Assuming above sea level.");
            } else {
                int altref = ((Number) e.getValue()).intValue() * (-2) + 1; // 0 -> 1 && 1 -> -1
                if (Math.abs(altref) != 1 ){
                    System.err.printf("WARNING: illegal GPSAltitudeRef %d. Assuming above sea level.\n",
                        altref);
                    altref = 1;
                }
                alti *= altref;
            }
            result.setEle(new BigDecimal(alti));
        }

        /* dateTime */
        e = gpsIfd.findField(TiffConstants.GPS_TAG_GPS_TIME_STAMP);
        if(e != null){
            r3 = (Number[]) e.getValue();
            long millis = Math.round(asDouble(r3, 3.6e6));
            e = gpsIfd.findField(TiffConstants.GPS_TAG_GPS_DATE_STAMP);
            if (e != null){
                Date d = null;
                try{
                    d = AbstractExecExifWriter.parseExifDate((String) e.getValue());
                    d = new Date(d.getTime() + millis);
                    result.setTime(d);
                } catch (ParseException ex){
                    System.err.println(ex);
                }
View Full Code Here

Examples of org.apache.sanselan.formats.tiff.TiffField

  public String getData(int field) throws NoMetaDataException {
    logger.log(Level.FINEST, "get data " + field + " from "
        + file.getPath());

    String value = null;
    TiffField valueField;

    if (jpegMetadata != null && jpegMetadata.getExif() != null) {
      switch (field) {
      case InfoConstants.GPS_LATITUDE:
        try {
          if (jpegMetadata.getExif() != null
              && jpegMetadata.getExif().getGPS() != null) {
            value = String.valueOf(jpegMetadata.getExif().getGPS()
                .getLatitudeAsDegreesNorth());
            if (jpegMetadata.getExif().getGPS().latitudeRef == GPSTagConstants.GPS_TAG_GPS_DEST_LATITUDE_REF_VALUE_SOUTH) {
              value = "-" + value;
            }
          } else {
            logger.log(Level.FINER,
                "no meta data for latitude exist in "
                    + getFile().getPath());
            throw new NoMetaDataException(
                "no meta data for latitude exist in "
                    + getFile().getPath());
          }
        } catch (ImageReadException ire) {
          logger.log(Level.WARNING,
              "error while reading latitude from "
                  + file.getName(), ire);
        }
        break;
      case InfoConstants.GPS_LONGITUDE:
        try {
          if (jpegMetadata.getExif() != null
              && jpegMetadata.getExif().getGPS() != null) {
            value = String.valueOf(jpegMetadata.getExif().getGPS()
                .getLongitudeAsDegreesEast());
            if (jpegMetadata.getExif().getGPS().longitudeRef == GPSTagConstants.GPS_TAG_GPS_DEST_LONGITUDE_REF_VALUE_WEST) {
              value = "-" + value;
            }
          } else {
            logger.log(Level.FINER,
                "no meta data for longitude exist in "
                    + getFile().getPath());
            throw new NoMetaDataException(
                "no meta data for longitude exist in "
                    + getFile().getPath());
          }
        } catch (ImageReadException ire) {
          logger.log(Level.WARNING,
              "error while reading longitude from "
                  + file.getName(), ire);
        }
        break;
      case InfoConstants.DATE_TIME:
        /* format 'yyyy:MM:dd kk:mm:ss' */
        valueField = jpegMetadata
            .findEXIFValue(TiffConstants.EXIF_TAG_CREATE_DATE);
        if (valueField != null) {
          value = valueField.getValueDescription();
          value = value.substring(1, value.length() - 1);
        }
        break;
      case InfoConstants.USER_COMMENT:
        valueField = jpegMetadata
            .findEXIFValue(TiffConstants.EXIF_TAG_USER_COMMENT);
        if (valueField != null) {
          value = valueField.getValueDescription();
          value = value.substring(1, value.length() - 1);
        }
        break;
      case InfoConstants.IMAGE_DESCRIPTION:
        valueField = jpegMetadata
            .findEXIFValue(TiffConstants.TIFF_TAG_IMAGE_DESCRIPTION);
        if (valueField != null) {
          value = valueField.getValueDescription();
          value = value.substring(1, value.length() - 1);
        }
        break;
      }
    } else {
View Full Code Here

Examples of org.apache.sanselan.formats.tiff.TiffField

          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];
View Full Code Here

Examples of org.apache.sanselan.formats.tiff.TiffField

  }

  private static void printTagValue(JpegImageMetadata jpegMetadata,
      TagInfo tagInfo) throws ImageReadException, IOException
  {
    TiffField field = jpegMetadata.findEXIFValue(tagInfo);
    if (field == null)
      System.out.println(tagInfo.name + ": " + "Not Found.");
    else
      System.out.println(tagInfo.name + ": "
          + field.getValueDescription());
  }
View Full Code Here

Examples of org.apache.sanselan.formats.tiff.TiffField

          byteSource, params);

      if (metadata != null)
      {
        {
          TiffField field = metadata
              .findEXIFValue(TIFF_TAG_XRESOLUTION);
          if (field != null)
            x_density = ((Number) field.getValue()).doubleValue();
        }
        {
          TiffField field = metadata
              .findEXIFValue(TIFF_TAG_YRESOLUTION);
          if (field != null)
            y_density = ((Number) field.getValue()).doubleValue();
        }
        {
          TiffField field = metadata
              .findEXIFValue(TIFF_TAG_RESOLUTION_UNIT);
          if (field != null)
          {
            int density_units = ((Number) field.getValue())
                .intValue();

            switch (density_units)
            {
              case 1 :
View Full Code Here

Examples of org.apache.sanselan.formats.tiff.TiffField

      Object o = items.get(i);
      if (!(o instanceof TiffImageMetadata.Item))
        continue;

      TiffImageMetadata.Item item = (TiffImageMetadata.Item) o;
      TiffField field = item.getTiffField();
      if (field.tag == tagInfo.tag)
        return field;
    }

    return null;
View Full Code Here

Examples of org.apache.sanselan.formats.tiff.TiffField

      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

Examples of org.apache.sanselan.formats.tiff.TiffField

  {
    Hashtable fieldMap = new Hashtable();
    for (int i = 0; i < items.size(); i++)
    {
      TiffImageMetadata.Item item = (TiffImageMetadata.Item) items.get(i);
      TiffField field = item.getTiffField();
      Object key = new Integer(field.tag);
      if (!fieldMap.containsKey(key))
        fieldMap.put(key, field);
    }
    return fieldMap;
View Full Code Here

Examples of org.apache.sanselan.formats.tiff.TiffField

      for (int j = 0; j < oldFieldTags.size(); j++)
      {
        Integer fieldTag = (Integer) oldFieldTags.get(j);

        TiffField oldField = (TiffField) oldFieldMap.get(fieldTag);
        TiffField newField = (TiffField) newFieldMap.get(fieldTag);

        //        Debug.debug("fieldTag", fieldTag);
        //        Debug.debug("oldField", oldField);
        //        Debug.debug("newField", newField);

        //        fieldTag.
        assertNotNull(oldField);
        assertNotNull(newField);

        assertEquals(oldField.tag, newField.tag);
        assertEquals(dirType.intValue(), newField.directoryType);
        assertEquals(oldField.directoryType, newField.directoryType);
        assertEquals(oldField.length, newField.length);
        assertEquals(oldField.isLocalValue(), newField.isLocalValue());

        if (oldField.tag == 0x202)
        {
          // ignore "jpg from raw length" value. may have off-by-one bug in certain cameras.
          // i.e. Sony DCR-PC110
          continue;
        }

        if (!oldField.tagInfo.isOffset())
        {
          if (oldField.tagInfo.isText())
            ;
          else if (oldField.isLocalValue())
          {
            //            Debug.debug("oldField.tag", oldField.tag);
            //            Debug.debug("newField.tag", newField.tag);
            //            Debug.debug("oldField.tagInfo", oldField.tagInfo);
            //            Debug.debug("newField.tagInfo", newField.tagInfo);
            //            Debug.debug("oldField.fieldType", oldField.fieldType);
            //            Debug.debug("newField.fieldType", newField.fieldType);
            //            Debug.debug("oldField.getBytesLength", oldField
            //                .getBytesLength());
            //            Debug.debug("newField.getBytesLength", newField
            //                .getBytesLength());
            //
            //            Debug.debug("oldField.valueOffsetBytes",
            //                oldField.valueOffsetBytes);
            //            Debug.debug("newField.valueOffsetBytes",
            //                newField.valueOffsetBytes);

            if (oldField.tag == 0x116 || oldField.tag == 0x117)
              compare(oldField, newField);
            else
              compare(oldField.valueOffsetBytes,
                  newField.valueOffsetBytes, oldField
                      .getBytesLength(), newField
                      .getBytesLength());
          }
          else
          {
            //            Debug.debug("oldField.tagInfo", oldField.tagInfo);
View Full Code Here

Examples of org.apache.sanselan.formats.tiff.TiffField

          byteSource, params);

      if (metadata != null)
      {
        {
          TiffField field = metadata
              .findEXIFValue(TIFF_TAG_XRESOLUTION);
          if (field != null)
            x_density = ((Number) field.getValue()).doubleValue();
        }
        {
          TiffField field = metadata
              .findEXIFValue(TIFF_TAG_YRESOLUTION);
          if (field != null)
            y_density = ((Number) field.getValue()).doubleValue();
        }
        {
          TiffField field = metadata
              .findEXIFValue(TIFF_TAG_RESOLUTION_UNIT);
          if (field != null)
          {
            int density_units = ((Number) field.getValue())
                .intValue();

            switch (density_units)
            {
            case 1:
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.