本文整理汇总了Java中org.apache.commons.imaging.formats.tiff.TiffImageMetadata类的典型用法代码示例。如果您正苦于以下问题:Java TiffImageMetadata类的具体用法?Java TiffImageMetadata怎么用?Java TiffImageMetadata使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。
TiffImageMetadata类属于org.apache.commons.imaging.formats.tiff包,在下文中一共展示了TiffImageMetadata类的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Java代码示例。
示例1: readGps
import org.apache.commons.imaging.formats.tiff.TiffImageMetadata; //导入依赖的package包/类
private void readGps(JpegImageMetadata input, PhotoMetadata output) {
try {
TiffImageMetadata tiffData = input.getExif();
if (tiffData == null) {
LOGGER.debug("failed reading GPS since metadata contains no Exif");
return;
}
TiffImageMetadata.GPSInfo gps = input.getExif().getGPS();
if (gps == null) {
LOGGER.debug("metadata contains no GPS");
return;
}
output.setLatitude(gps.getLatitudeAsDegreesNorth());
output.setLongitude(gps.getLongitudeAsDegreesEast());
LOGGER.debug("read GPS as longitude {} and latitude {}", output.getLongitude(),
output.getLatitude());
} catch (ImageReadException ex) {
LOGGER.warn("failed reading GPS data");
}
}
示例2: getTiffValueDate
import org.apache.commons.imaging.formats.tiff.TiffImageMetadata; //导入依赖的package包/类
private LocalDateTime getTiffValueDate(final TiffImageMetadata tiffMetadata) {
try {
final TiffField exifDate = tiffMetadata.findField(ExifTagConstants.EXIF_TAG_DATE_TIME_ORIGINAL, true);
if (exifDate != null) {
return LocalDateTime.parse(exifDate.getStringValue(), _dtParser);
}
final TiffField date = tiffMetadata.findField(TiffTagConstants.TIFF_TAG_DATE_TIME, true);
if (date != null) {
return LocalDateTime.parse(date.getStringValue(), _dtParser);
}
} catch (final Exception e) {
// ignore
}
return null;
}
示例3: getExifMetadata
import org.apache.commons.imaging.formats.tiff.TiffImageMetadata; //导入依赖的package包/类
public TiffImageMetadata getExifMetadata(final ByteSource byteSource, Map<String, Object> params)
throws ImageReadException, IOException {
final byte[] bytes = getExifRawData(byteSource);
if (null == bytes) {
return null;
}
if (params == null) {
params = new HashMap<String, Object>();
}
if (!params.containsKey(PARAM_KEY_READ_THUMBNAILS)) {
params.put(PARAM_KEY_READ_THUMBNAILS, Boolean.TRUE);
}
return (TiffImageMetadata) new TiffImageParser().getMetadata(bytes,
params);
}
示例4: getEXIFThumbnailData
import org.apache.commons.imaging.formats.tiff.TiffImageMetadata; //导入依赖的package包/类
/**
* Returns the data of the first JPEG thumbnail found in the EXIF metadata.
*
* @return JPEG data or null if no thumbnail.
* @throws ImageReadException
* @throws IOException
*/
public byte[] getEXIFThumbnailData() throws ImageReadException, IOException {
if (exif == null) {
return null;
}
final List<? extends IImageMetadataItem> dirs = exif.getDirectories();
for (IImageMetadataItem d : dirs) {
final TiffImageMetadata.Directory dir = (TiffImageMetadata.Directory) d;
byte[] data = null;
if (dir.getJpegImageData() != null) {
data = dir.getJpegImageData().data;
}
// Support other image formats here.
if (data != null) {
return data;
}
}
return null;
}
示例5: getRawImageData
import org.apache.commons.imaging.formats.tiff.TiffImageMetadata; //导入依赖的package包/类
public TiffImageData getRawImageData() {
if (exif == null) {
return null;
}
final List<? extends IImageMetadataItem> dirs = exif.getDirectories();
for (IImageMetadataItem d : dirs) {
final TiffImageMetadata.Directory dir = (TiffImageMetadata.Directory) d;
// Debug.debug("dir", dir);
final TiffImageData rawImageData = dir.getTiffImageData();
if (null != rawImageData) {
return rawImageData;
}
}
return null;
}
示例6: load
import org.apache.commons.imaging.formats.tiff.TiffImageMetadata; //导入依赖的package包/类
public static void load(final List<File> files) {
final List<PhotoDataset> photos = new ArrayList<>(files.size());
files.stream().forEach((file) -> {
final PhotoDataset photoDataset = new PhotoDataset(file);
final TiffImageMetadata exif = getExif(file);
if (exif != null) {
final Instant timeTaken = getTimeTaken(exif, file);
if (timeTaken != null) {
photoDataset.setInstantTaken(timeTaken);
photoDataset.setHasGeotag(photoHasGeotag(exif, file));
photos.add(photoDataset);
} else {
log(Level.ALL, String.format(
"Couldn't parse date/time for file %s", file));
}
} else {
log(Level.WARNING, String.format(
"No EXIF metadata found for file %s", file));
}
});
DataHolder.getInstance().addPhotos(photos);
}
示例7: getExif
import org.apache.commons.imaging.formats.tiff.TiffImageMetadata; //导入依赖的package包/类
private static TiffImageMetadata getExif(final File file) {
TiffImageMetadata exif = null;
try {
final IImageMetadata metadata = Imaging.getMetadata(file);
if (metadata != null) {
final JpegImageMetadata jpegMetadata
= (JpegImageMetadata) metadata;
exif = jpegMetadata.getExif();
} else {
log(Level.WARNING, String.format(
"No metadata found for file %s", file));
}
}
catch (final ImageReadException | IOException ex) {
Logger.getLogger(PhotoLoader.class.getName()).
log(Level.SEVERE, null, ex);
}
return exif;
}
示例8: photoHasGeotag
import org.apache.commons.imaging.formats.tiff.TiffImageMetadata; //导入依赖的package包/类
private static Boolean photoHasGeotag(final TiffImageMetadata exif,
final File file) {
Boolean hasGeoTag = false;
try {
final TiffImageMetadata.GPSInfo gps = exif.getGPS();
if (gps != null
&& gps.getLatitudeAsDegreesNorth() != 0
&& gps.getLongitudeAsDegreesEast() != 0) {
hasGeoTag = Boolean.TRUE;
}
}
catch (ImageReadException ex) {
Logger.getLogger(PhotoLoader.class.getName()).log(
Level.FINE, null, String.format(
"File: %s couldn't be read. Cause: %s",
file.getPath(), ex.getMessage()));
}
return hasGeoTag;
}
示例9: getExifMetadata
import org.apache.commons.imaging.formats.tiff.TiffImageMetadata; //导入依赖的package包/类
public TiffImageMetadata getExifMetadata(final ByteSource byteSource, Map<String, Object> params)
throws ImageReadException, IOException {
final byte[] bytes = getExifRawData(byteSource);
if (null == bytes) {
return null;
}
if (params == null) {
params = new HashMap<>();
}
if (!params.containsKey(PARAM_KEY_READ_THUMBNAILS)) {
params.put(PARAM_KEY_READ_THUMBNAILS, Boolean.TRUE);
}
return (TiffImageMetadata) new TiffImageParser().getMetadata(bytes,
params);
}
示例10: getEXIFThumbnailData
import org.apache.commons.imaging.formats.tiff.TiffImageMetadata; //导入依赖的package包/类
/**
* Returns the data of the first JPEG thumbnail found in the EXIF metadata.
*
* @return JPEG data or null if no thumbnail.
* @throws ImageReadException
* @throws IOException
*/
public byte[] getEXIFThumbnailData() throws ImageReadException, IOException {
if (exif == null) {
return null;
}
final List<? extends ImageMetadataItem> dirs = exif.getDirectories();
for (final ImageMetadataItem d : dirs) {
final TiffImageMetadata.Directory dir = (TiffImageMetadata.Directory) d;
byte[] data = null;
if (dir.getJpegImageData() != null) {
data = dir.getJpegImageData().getData(); // TODO clone?
}
// Support other image formats here.
if (data != null) {
return data;
}
}
return null;
}
示例11: getRawImageData
import org.apache.commons.imaging.formats.tiff.TiffImageMetadata; //导入依赖的package包/类
public TiffImageData getRawImageData() {
if (exif == null) {
return null;
}
final List<? extends ImageMetadataItem> dirs = exif.getDirectories();
for (final ImageMetadataItem d : dirs) {
final TiffImageMetadata.Directory dir = (TiffImageMetadata.Directory) d;
// Debug.debug("dir", dir);
final TiffImageData rawImageData = dir.getTiffImageData();
if (null != rawImageData) {
return rawImageData;
}
}
return null;
}
示例12: checkFields
import org.apache.commons.imaging.formats.tiff.TiffImageMetadata; //导入依赖的package包/类
private void checkFields(final byte[] file) throws Exception {
final TiffImageMetadata metadata = toTiffMetadata(Imaging.getMetadata(file));
// field values may be duplicated between directories, we have to check all
final List<Object> authorValues = new ArrayList<>();
final List<Object> commentValues = new ArrayList<>();
final List<Object> subjectValues = new ArrayList<>();
final List<Object> titleValues = new ArrayList<>();
for (final TiffDirectory d : metadata.contents.directories) {
titleValues.add(d.getFieldValue(MicrosoftTagConstants.EXIF_TAG_XPTITLE, false));
authorValues.add(d.getFieldValue(MicrosoftTagConstants.EXIF_TAG_XPAUTHOR, false));
commentValues.add(d.getFieldValue(MicrosoftTagConstants.EXIF_TAG_XPCOMMENT, false));
subjectValues.add(d.getFieldValue(MicrosoftTagConstants.EXIF_TAG_XPSUBJECT, false));
}
assertTrue(authorValues.contains(AUTHOR));
assertTrue(commentValues.contains(COMMENT));
assertTrue(subjectValues.contains(SUBJECT));
assertTrue(titleValues.contains(TITLE));
}
示例13: copyExifOrientation
import org.apache.commons.imaging.formats.tiff.TiffImageMetadata; //导入依赖的package包/类
/**
* This method will copy the Exif "orientation" information to the resulting image, if the
* original image contains this data too.
*
* @param sourceImage
* The source image.
* @param result
* The original result.
* @return The new result containing the Exif orientation.
*/
public static byte[] copyExifOrientation(byte[] sourceImage, byte[] result) {
try {
ImageMetadata imageMetadata = Imaging.getMetadata(sourceImage);
if (imageMetadata == null) {
return result;
}
List<? extends ImageMetadata.ImageMetadataItem> metadataItems = imageMetadata
.getItems();
for (ImageMetadata.ImageMetadataItem metadataItem : metadataItems) {
if (metadataItem instanceof TiffImageMetadata.TiffMetadataItem) {
TiffField tiffField = ((TiffImageMetadata.TiffMetadataItem) metadataItem)
.getTiffField();
if (!tiffField.getTagInfo().equals(TiffTagConstants.TIFF_TAG_ORIENTATION)) {
continue;
}
Object orientationValue = tiffField.getValue();
if (orientationValue == null) {
break;
}
TiffOutputSet outputSet = new TiffOutputSet();
TiffOutputDirectory outputDirectory = outputSet.getOrCreateRootDirectory();
outputDirectory.add(TiffTagConstants.TIFF_TAG_ORIENTATION,
((Number) orientationValue).shortValue());
ByteArrayOutputStream outputStream = new ByteArrayOutputStream();
new ExifRewriter().updateExifMetadataLossy(result, outputStream, outputSet);
return outputStream.toByteArray();
}
}
} catch (IOException | ImageWriteException | ImageReadException e) {
LOGGER.warn("Error reading image: {}", e.getMessage());
}
return result;
}
示例14: getTiffValueInt
import org.apache.commons.imaging.formats.tiff.TiffImageMetadata; //导入依赖的package包/类
private int getTiffValueInt(final TiffImageMetadata tiffMetadata,
final TagInfoShortOrLong tiffTag,
final int defaultValue) {
try {
final TiffField field = tiffMetadata.findField(tiffTag, true);
if (field != null) {
return field.getIntValue();
}
} catch (final Exception e) {
// ignore
}
return defaultValue;
}
示例15: getTiffValueString
import org.apache.commons.imaging.formats.tiff.TiffImageMetadata; //导入依赖的package包/类
private String getTiffValueString(final TiffImageMetadata tiffMetadata, final TagInfo tagInfo) {
try {
final TiffField field = tiffMetadata.findField(tagInfo, true);
if (field != null) {
return field.getStringValue();
}
} catch (final Exception e) {
// ignore
}
return null;
}