Example usage for org.apache.commons.imaging.formats.tiff TiffDirectory getFieldValue

List of usage examples for org.apache.commons.imaging.formats.tiff TiffDirectory getFieldValue

Introduction

In this page you can find the example usage for org.apache.commons.imaging.formats.tiff TiffDirectory getFieldValue.

Prototype

public Object getFieldValue(final TagInfo tag) throws ImageReadException 

Source Link

Usage

From source file:slash.navigation.photo.PhotoFormat.java

private String parseRoot(TiffImageMetadata metadata, TagInfo tag) throws ImageReadException {
    TiffDirectory rootDirectory = metadata.findDirectory(DIRECTORY_TYPE_ROOT);
    return rootDirectory != null ? trim((String) rootDirectory.getFieldValue(tag)) : null;
}

From source file:slash.navigation.photo.PhotoFormat.java

private String parseExif(TiffImageMetadata metadata, TagInfo tag) throws ImageReadException {
    TiffDirectory exifDirectory = metadata.findDirectory(DIRECTORY_TYPE_EXIF);
    return exifDirectory != null ? trim((String) exifDirectory.getFieldValue(tag)) : null;
}

From source file:slash.navigation.photo.PhotoFormat.java

private Integer parseExifInteger(TiffImageMetadata metadata, TagInfo tag) throws ImageReadException {
    TiffDirectory exifDirectory = metadata.findDirectory(DIRECTORY_TYPE_EXIF);
    if (exifDirectory == null)
        return null;
    Object fieldValue = exifDirectory.getFieldValue(tag);
    return fieldValue != null ? new Integer(fieldValue.toString()) : null;
}

From source file:slash.navigation.photo.PhotoFormat.java

private RationalNumber parseExifRationalNumber(TiffImageMetadata metadata, TagInfo tag)
        throws ImageReadException {
    TiffDirectory exifDirectory = metadata.findDirectory(DIRECTORY_TYPE_EXIF);
    if (exifDirectory == null)
        return null;
    return (RationalNumber) exifDirectory.getFieldValue(tag);
}

From source file:slash.navigation.photo.PhotoFormat.java

private CompactCalendar parseExifTime(TiffImageMetadata metadata, CompactCalendar startDate)
        throws ImageReadException {
    String dateString = null;/*from w w  w  . j a  v  a2  s  . c om*/
    TiffDirectory exifDirectory = metadata.findDirectory(DIRECTORY_TYPE_EXIF);
    if (exifDirectory != null) {
        dateString = parseExif(metadata, EXIF_TAG_DATE_TIME_ORIGINAL);
        if (dateString == null)
            dateString = parseExif(metadata, EXIF_TAG_DATE_TIME_DIGITIZED);
    }
    TiffDirectory rootDirectory = metadata.findDirectory(DIRECTORY_TYPE_ROOT);
    if (rootDirectory != null && dateString == null)
        dateString = (String) rootDirectory.getFieldValue(TIFF_TAG_DATE_TIME);
    return dateString != null ? parseDate(dateString, DATE_TIME_FORMAT) : startDate;
}

From source file:slash.navigation.photo.PhotoFormat.java

private RationalNumber getFieldValue(TiffDirectory directory, TagInfoRational tagInfoRational) {
    try {// w  w  w  .j  a  v a 2s  .  co m
        return directory.getFieldValue(tagInfoRational);
    } catch (ImageReadException e) {
        log.fine("Could not parse " + tagInfoRational + ": " + getLocalizedMessage(e));
        return null;
    }
}

From source file:slash.navigation.photo.PhotoFormat.java

private Double parseAltitude(TiffDirectory directory) throws ImageReadException {
    RationalNumber altitudeNumber = getFieldValue(directory, GPS_TAG_GPS_ALTITUDE);
    if (altitudeNumber == null)
        return null;

    double altitude = altitudeNumber.doubleValue();
    Byte altitudeRef = directory.getFieldValue(GPS_TAG_GPS_ALTITUDE_REF);
    return altitudeRef == 1 ? -altitude : altitude;
}

From source file:slash.navigation.photo.PhotoFormat.java

private Double parseSpeed(TiffDirectory directory) throws ImageReadException {
    RationalNumber speedNumber = getFieldValue(directory, GPS_TAG_GPS_SPEED);
    if (speedNumber == null)
        return null;

    double speed = speedNumber.doubleValue();
    String speedRef = (String) directory.getFieldValue(GPS_TAG_GPS_SPEED_REF);
    if (speedRef != null) {
        if (GPS_TAG_GPS_SPEED_REF_VALUE_MPH.equals(speedRef))
            speed = statuteMilesToKiloMeter(speed);
        else if (GPS_TAG_GPS_SPEED_REF_VALUE_KNOTS.equals(speedRef))
            speed = nauticMilesToKiloMeter(speed);
    }//from  w w w .jav  a  2 s  .  co m
    return speed;
}

From source file:slash.navigation.photo.PhotoFormat.java

private CompactCalendar parseGPSTime(TiffDirectory directory, CompactCalendar startDate)
        throws ImageReadException {
    String dateString = (String) directory.getFieldValue(GPS_TAG_GPS_DATE_STAMP);
    CompactCalendar date = dateString != null ? parseDate(dateString, DATE_FORMAT) : startDate;
    RationalNumber[] timeStamp = (RationalNumber[]) directory.getFieldValue(GPS_TAG_GPS_TIME_STAMP);
    if (timeStamp != null) {
        Calendar calendar = date.getCalendar();
        calendar.set(HOUR, timeStamp[0].intValue());
        calendar.set(MINUTE, timeStamp[1].intValue());
        calendar.set(SECOND, timeStamp[2].intValue());
        date = fromCalendar(calendar);/*from  ww w  .j  ava 2 s . c om*/
    }
    return date;
}

From source file:slash.navigation.photo.PhotoFormat.java

private Integer parseSatellites(TiffDirectory directory) throws ImageReadException {
    String satellites = (String) directory.getFieldValue(GPS_TAG_GPS_SATELLITES);
    return satellites != null ? parseInteger(satellites) : null;
}