Refine search
if (!directory.hasErrors()) continue; for (String error : directory.getErrors()) writer.format("[ERROR: %s] %s%s", directory.getName(), error, NEW_LINE); for (Tag tag : directory.getTags()) { String tagName = tag.getTagName(); String description; try { description = tag.getDescription(); } catch (Exception ex) { description = "ERROR: " + ex.getMessage(); description = ""; if (directory instanceof FileSystemDirectory && tag.getTagType() == FileSystemDirectory.TAG_FILE_MODIFIED_DATE) description = "<omitted for regression testing as checkout dependent>"; writer.format("[%s - %s] %s = %s%s", directoryName, tag.getTagTypeHex(), tagName, description, NEW_LINE); if (directory.getTagCount() != 0)
/** * A basic representation of the tag's type and value. EG: <code>[Exif IFD0] FNumber - f/2.8</code>. * * @return the tag's type and value */ @Override @NotNull public String toString() { String description = getDescription(); if (description == null) description = _directory.getString(getTagType()) + " (unable to formulate description)"; return "[" + _directory.getName() + "] " + getTagName() + " - " + description; } }
private Map<String, String> getTags(Integer max, Metadata metadata) { Map<String, String> results = new HashMap<>(); int i =0; for (Directory directory : metadata.getDirectories()) { for (Tag tag : directory.getTags()) { results.put(directory.getName() + "." + tag.getTagName(), tag.getDescription()); if(max!=null) { i++; if (i >= max) { return results; } } } } return results; } }
@Override public void onExtractionSuccess(@NotNull File file, @NotNull Metadata metadata, @NotNull String relativePath, @NotNull PrintStream log) { super.onExtractionSuccess(file, metadata, relativePath, log); for (Directory directory : metadata.getDirectories()) { for (Tag tag : directory.getTags()) { // Only interested in unknown tags (those without names) if (tag.hasTagName()) continue; HashMap<Integer, Integer> occurrenceCountByTag = _occurrenceCountByTagByDirectory.get(directory.getName()); if (occurrenceCountByTag == null) { occurrenceCountByTag = new HashMap<Integer, Integer>(); _occurrenceCountByTagByDirectory.put(directory.getName(), occurrenceCountByTag); } Integer count = occurrenceCountByTag.get(tag.getTagType()); if (count == null) { count = 0; occurrenceCountByTag.put(tag.getTagType(), 0); } occurrenceCountByTag.put(tag.getTagType(), count + 1); } } }
public void handle(Directory directory, Metadata metadata) throws MetadataException { if (directory.getTags() != null) { for (Tag tag : directory.getTags()) { metadata.set(tag.getTagName(), tag.getDescription()); } } } }
String directoryName = directory.getName(); for (Tag tag : directory.getTags()) { String tagName = tag.getTagName(); String description = tag.getDescription(); System.out.printf("%s|0x%s|%s|%s%n", directoryName, Integer.toHexString(tag.getTagType()), tagName, description); System.out.printf("[%s - %s] %s = %s%n", directoryName, tag.getTagTypeHex(), tagName, description); } else { System.out.printf("[%s] %s = %s%n", directoryName, tagName, description); for (String error : directory.getErrors()) System.err.println("ERROR: " + error);
System.err.println(url); for (Directory directory : metadata.getDirectories()) { if (!directory.hasErrors()) continue; for (String error : directory.getErrors()) { System.err.printf("\t[%s] %s%n", directory.getName(), error); for (Tag tag : directory.getTags()) { String tagName = tag.getTagName(); String directoryName = directory.getName(); String description = tag.getDescription();
private void processDirectory(final MapWriter writer, final Directory directory, final Metadata metadata) { for (Tag tag : directory.getTags()) { try { final int tagType = tag.getTagType(); Object value; if (descriptive || isDescriptionTag(directory, tagType)) { value = directory.getDescription(tagType); if (directory instanceof PngDirectory) { if (((PngDirectory) directory).getPngChunkType().areMultipleAllowed()) { value = directory.getObject(tagType); if (directory instanceof ExifIFD0Directory && tagType == ExifIFD0Directory.TAG_DATETIME) { ExifSubIFDDirectory exifSubIFDDir = metadata.getFirstDirectoryOfType(ExifSubIFDDirectory.class); writeValue(writer, formatName(tag.getTagName()), value); } catch (Exception e) {
private ExifMetadata getMetadataFromTag(Directory directory, Tag tag) throws MetadataException { ExifMetadata metadata = new ExifMetadata(); metadata.setDirectory(tag.getDirectoryName()); metadata.setKey(tag.getTagName()); metadata.setValue(tag.getDescription()); String values[]; Object value = directory.getObject(tag.getTagType()); if (value instanceof byte[]) { return null; } else if (value instanceof String) { values = new String[] {(String)value}; } else if (value instanceof String[]) { values = (String[])value; } else { values = new String[] {directory.getString(tag.getTagType())}; } values = decodeValues(values); metadata.setValues(values); return metadata; }
private void populateMetadata(Metadata metadata) { for (Iterator<?> di = metadata.getDirectories().iterator(); di.hasNext();) { Directory directory = (Directory) di.next(); Map<String, String> tags = new HashMap<String, String>(); put(directory.getName(), tags); for (Iterator<?> ti = directory.getTags().iterator(); ti.hasNext();) { Tag tag = (Tag) ti.next(); try { tags.put(tag.getTagName(), directory.getDescription(tag.getTagType())); } catch (Exception error) { errors.add(error); } } } }
@Override public void extractMetadata(byte[] bytes, Map<String, String> md) { BufferedInputStream bis = new BufferedInputStream(new ByteArrayInputStream(bytes)); try { Metadata metadata = ImageMetadataReader.readMetadata(bis, false); for (Directory directory : metadata.getDirectories()) { for (Tag tag : directory.getTags()) { String key = tag.getTagName(); if (md.containsKey(key)) { key = String.format("%s (%s)", tag.getTagName(), tag.getDirectoryName()); } String value = directory.getDescription(tag.getTagType()); if (StringUtils.isNotEmpty(value) && value.startsWith("[") && value.endsWith("bytes]")) { byte[] tagBytes = directory.getByteArray(tag.getTagType()); value = Base64.encodeBase64String(tagBytes); } md.put(key, value); } } } catch (Exception ex) { ex.printStackTrace(); } } }
for (Tag tag : directory.getTags()) { if (tag.getTagType() == ExifDirectoryBase.TAG_DATETIME) { dateTime = tag.getDescription();
Metadata metadata = ImageMetadataReader.readMetadata(new BufferedInputStream(new BytesStreamInput(content, false)), false); for (Directory directory : metadata.getDirectories()) { for (Tag tag : directory.getTags()) { String metadataName = tag.getDirectoryName().toLowerCase().replaceAll("\\s+", "_") + "." + tag.getTagName().toLowerCase().replaceAll("\\s+", "_"); if (metadataMappers.containsKey(metadataName)) { Mapper mapper = metadataMappers.get(metadataName); context.externalValue(tag.getDescription()); mapper.parse(context);
@Override public HashMap<String, String> getTags() { HashMap<String, String> tagMap = new HashMap<String, String>(); if (directory != null) { for (Tag tag : directory.getTags()) { tagMap.put(tag.getTagName(), tag.getDescription()); } } return tagMap; }
String hexStr = getHexString(tag.getTagType()); } else { propMap.put(propId, dir.getObject(tag.getTagType()));
/*************************************************************************** * * **************************************************************************/ @SuppressWarnings("unchecked") @Override public int[] getTags() { final int[] result = new int[directory.getTagCount()]; int j = 0; for (final Tag tag: directory.getTags()) { result[j++] = tag.getTagType(); } return result; }
File pic = new File("C:/myPicture.jpg"); Metadata metadata = ImageMetadataReader.readMetadata(pic); for (Directory directory : metadata.getDirectories()) { for (Tag tag : directory.getTags()) { System.out.println(tag + " - " +tag.getTagType()); } }
private void processGenericMetadataDirectory(final MapWriter writer, final GenericMetadataDirectory directory) { for (Tag tag : directory.getTags()) { try { final int tagType = tag.getTagType(); if (tagType != GenericMetadataDirectory.TAG_FILE_SIZE && tagType != GenericMetadataDirectory.TAG_FILE_DATE_TIME || fileSystemMetadata) { writeValue(writer, formatName(tag.getTagName()), descriptive ? directory.getDescription(tagType) : directory.getObject(tagType)); } } catch (Exception e) { // simply skip this tag } } }
@Override public void extractMetadata(File f, TypeDefinition td, Session session) throws MapperException { reset(); // see http://code.google.com/p/metadata-extractor/wiki/GettingStarted try { com.drew.metadata.Metadata metadata = ImageMetadataReader.readMetadata(f); Iterator<?> it = metadata.getDirectoryIterator(); while (it.hasNext()) { Directory directory = (com.drew.metadata.Directory) it.next(); Iterator<?> tagIt = directory.getTagIterator(); while (tagIt.hasNext()) { Tag tag = (Tag) tagIt.next(); Object o = directory.getObject(tag.getTagType()); LOG.debug("Tag: " + tag + ", value: " + o + ", class: " + o.getClass() + ", tag type: " + tag.getTagType() + ", hex-value: " + tag.getTagTypeHex()); if (null != cmisProperties) { ((PropertyMapperExif)mapper).mapTagAndConvert(directory, tag, td); } } } Map<String, Object> props = ((PropertyMapperExif)mapper).getMappedProperties(); cmisProperties.putAll(props); } catch (ImageProcessingException e) { LOG.error(e.toString(), e); } }
public class MyLinkVisitor extends NodeVisitor { public MyLinkVisitor() { } public void visitTag(Tag tag) { if (tag.getTagName().equals("A")) { LinkTag link = (LinkTag) tag; link.setLink("http://newLink/"); //implement your logic here } } }