Example usage for org.apache.commons.imaging.formats.tiff TiffImageMetadata findDirectory

List of usage examples for org.apache.commons.imaging.formats.tiff TiffImageMetadata findDirectory

Introduction

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

Prototype

public TiffDirectory findDirectory(final int directoryType) 

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 String parseUserComment(TiffImageMetadata metadata) throws ImageReadException {
    TiffDirectory exifDirectory = metadata.findDirectory(DIRECTORY_TYPE_EXIF);
    if (exifDirectory != null) {
        String userComment = parseExif(metadata, EXIF_TAG_USER_COMMENT);
        if (userComment != null)
            return userComment;
    }/*from w  w  w. j  a v a  2s  . c  o m*/

    TiffDirectory rootDirectory = metadata.findDirectory(DIRECTORY_TYPE_ROOT);
    if (rootDirectory != null) {
        String make = parseMake(metadata);
        String model = parseModel(metadata);
        CompactCalendar dateTime = parseDateTime(metadata);
        return trim((make != null ? make : "") + " " + (model != null ? model : "") + " Photo"
                + (dateTime != null ? " from " + formatDate(dateTime) : ""));
    }
    return "GPS";
}

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

private CompactCalendar parseExifTime(TiffImageMetadata metadata, CompactCalendar startDate)
        throws ImageReadException {
    String dateString = null;/*  www .ja  va  2  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 void extendPosition(PhotoPosition position, TiffImageMetadata metadata, CompactCalendar startDate)
        throws ImageReadException {
    TiffImageMetadata.GPSInfo gpsInfo = metadata.getGPS();
    if (gpsInfo != null) {
        position.setLongitude(gpsInfo.getLongitudeAsDegreesEast());
        position.setLatitude(gpsInfo.getLatitudeAsDegreesNorth());
        position.setTagState(Tagged);/*ww w . j a  va 2 s  .  c o m*/
    }

    CompactCalendar time = parseExifTime(metadata, startDate);
    TiffDirectory gpsDirectory = metadata.findDirectory(DIRECTORY_TYPE_GPS);
    if (gpsDirectory != null) {
        position.setElevation(parseAltitude(gpsDirectory));
        position.setSpeed(parseSpeed(gpsDirectory));
        time = parseGPSTime(gpsDirectory, time);

        position.setHeading(parseDirection(gpsDirectory));
        position.setSatellites(parseSatellites(gpsDirectory));
        Double dop = parseDOP(gpsDirectory);
        if (is2DimensionalMeasurement(gpsDirectory))
            position.setHdop(dop);
        else
            position.setPdop(dop);
    }
    position.setTime(time);

    position.setDescription(parseUserComment(metadata));
    position.setMake(parseMake(metadata));
    position.setModel(parseModel(metadata));
    position.setWidth(parseExifInteger(metadata, EXIF_TAG_EXIF_IMAGE_WIDTH));
    position.setHeight(parseExifInteger(metadata, EXIF_TAG_EXIF_IMAGE_LENGTH));
    position.setfNumber(parseExifRationalNumber(metadata, EXIF_TAG_FNUMBER));
    position.setExposure(parseExifRationalNumber(metadata, EXIF_TAG_EXPOSURE_TIME));
    position.setFlash(parseExifInteger(metadata, EXIF_TAG_FLASH));
    position.setFocal(parseExifRationalNumber(metadata, EXIF_TAG_FOCAL_LENGTH));
    position.setPhotographicSensitivity(parseExifInteger(metadata, EXIF_TAG_ISO));
}