List of usage examples for org.apache.commons.imaging.formats.tiff TiffImageMetadata findDirectory
public TiffDirectory findDirectory(final int directoryType)
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)); }