List of usage examples for org.apache.commons.imaging.formats.jpeg JpegPhotoshopMetadata getItems
public List<? extends IImageMetadataItem> getItems()
From source file:lucee.runtime.img.Metadata.java
private static void fill(String format, InputStream is, Struct info) throws ImageReadException, IOException { // get all metadata stored in EXIF format (ie. from JPEG or TIFF). IImageMetadata metadata = Imaging.getMetadata(is, "test." + format); if (metadata == null) return;/*from w w w .jav a 2 s. c o m*/ // System.out.println(metadata); if (metadata instanceof JpegImageMetadata) { final JpegImageMetadata jpegMetadata = (JpegImageMetadata) metadata; try { set(jpegMetadata.getItems(), info, null); } catch (Throwable t) { ExceptionUtil.rethrowIfNecessary(t); } try { set(metadata.getItems(), info, null); } catch (Throwable t) { ExceptionUtil.rethrowIfNecessary(t); } // Photoshop if (metadata instanceof JpegImageMetadata) { JpegPhotoshopMetadata photoshop = ((JpegImageMetadata) metadata).getPhotoshop(); if (photoshop != null) { try { List<? extends IImageMetadataItem> list = photoshop.getItems(); if (list != null && !list.isEmpty()) { Struct ps = new StructImpl(); info.setEL("photoshop", ps); try { set(list, ps, null); } catch (Throwable t) { ExceptionUtil.rethrowIfNecessary(t); } } } catch (Throwable t) { ExceptionUtil.rethrowIfNecessary(t); } } } // EXIF if (jpegMetadata != null) { Struct exif = new StructImpl(); info.setEL("exif", exif); try { set(jpegMetadata.getExif().getItems(), exif, null); } catch (Throwable t) { ExceptionUtil.rethrowIfNecessary(t); } } // GPS try { gps(jpegMetadata, info); } catch (Throwable t) { ExceptionUtil.rethrowIfNecessary(t); } } }
From source file:net.tourbook.photo.Photo.java
/** * Creates metadata from image metadata/*from w w w .j a va2 s. c om*/ * * @param imageMetadata * Can be <code>null</code> when not available * @return */ private PhotoImageMetadata createPhotoMetadata(final IImageMetadata imageMetadata) { final PhotoImageMetadata photoMetadata = new PhotoImageMetadata(); /* * read meta data for this photo */ if (imageMetadata instanceof TiffImageMetadata) { photoMetadata.isExifFromImage = true; final TiffImageMetadata tiffMetadata = (TiffImageMetadata) imageMetadata; photoMetadata.exifDateTime = getTiffValueDate(tiffMetadata); photoMetadata.orientation = 1; photoMetadata.imageWidth = getTiffValueInt(tiffMetadata, TiffTagConstants.TIFF_TAG_IMAGE_WIDTH, Integer.MIN_VALUE); photoMetadata.imageHeight = getTiffValueInt(tiffMetadata, TiffTagConstants.TIFF_TAG_IMAGE_LENGTH, Integer.MIN_VALUE); photoMetadata.model = getTiffValueString(tiffMetadata, TiffTagConstants.TIFF_TAG_MODEL); } else if (imageMetadata instanceof JpegImageMetadata) { photoMetadata.isExifFromImage = true; final JpegImageMetadata jpegMetadata = (JpegImageMetadata) imageMetadata; photoMetadata.exifDateTime = getExifValueDate(jpegMetadata); photoMetadata.orientation = getExifValueInt(jpegMetadata, TiffTagConstants.TIFF_TAG_ORIENTATION, 1); photoMetadata.imageWidth = getExifValueInt(jpegMetadata, ExifTagConstants.EXIF_TAG_EXIF_IMAGE_WIDTH, Integer.MIN_VALUE); photoMetadata.imageHeight = getExifValueInt(jpegMetadata, ExifTagConstants.EXIF_TAG_EXIF_IMAGE_LENGTH, Integer.MIN_VALUE); photoMetadata.imageDirection = getExifValueDouble(jpegMetadata, GpsTagConstants.GPS_TAG_GPS_IMG_DIRECTION); photoMetadata.altitude = getExifValueDouble(jpegMetadata, GpsTagConstants.GPS_TAG_GPS_ALTITUDE); photoMetadata.model = getExifValueString(jpegMetadata, TiffTagConstants.TIFF_TAG_MODEL); /* * GPS */ final TiffImageMetadata exifMetadata = jpegMetadata.getExif(); if (exifMetadata != null) { try { final TiffImageMetadata.GPSInfo gpsInfo = exifMetadata.getGPS(); if (gpsInfo != null) { photoMetadata.latitude = gpsInfo.getLatitudeAsDegreesNorth(); photoMetadata.longitude = gpsInfo.getLongitudeAsDegreesEast(); } } catch (final Exception e) { // ignore } } photoMetadata.gpsAreaInfo = getExifValueGpsArea(jpegMetadata); /* * photoshop metadata */ final JpegPhotoshopMetadata pshopMetadata = jpegMetadata.getPhotoshop(); if (pshopMetadata != null) { final List<? extends IImageMetadataItem> pshopItems = pshopMetadata.getItems(); for (final IImageMetadataItem pshopItem : pshopItems) { if (pshopItem instanceof Item) { final Item item = (Item) pshopItem; final String keyword = item.getKeyword(); if (keyword.equals(IptcTypes.OBJECT_NAME.name)) { photoMetadata.objectName = item.getText(); } else if (keyword.equals(IptcTypes.CAPTION_ABSTRACT.name)) { photoMetadata.captionAbstract = item.getText(); } } } } } // set file date time photoMetadata.fileDateTime = _imageFileLastModified; //// this will log all available meta data // System.out.println(UI.timeStampNano()); // System.out.println(UI.timeStampNano() + " " + imageFileName); // System.out.println(UI.timeStampNano()); // System.out.println(imageMetadata.toString()); // System.out.println(UI.timeStampNano()); // System.out.println(photoMetadata); // System.out.println(UI.timeStampNano()); // // TODO remove SYSTEM.OUT.PRINTLN return photoMetadata; }