Package com.drew.lang

Examples of com.drew.lang.ByteArrayReader


    {
        final byte[] bytes = TestHelper.loadFileBytes(new File("Tests/com/drew/metadata/iptc/iptc1.bytes"));

        Metadata metadata = new Metadata();
        MetadataReader reader = new IptcReader();
        reader.extract(new ByteArrayReader(bytes), metadata);

        Assert.assertEquals(1, metadata.getDirectoryCount());
        IptcDirectory directory = metadata.getDirectory(IptcDirectory.class);
        Assert.assertNotNull(directory);
        Assert.assertFalse(directory.getErrors().toString(), directory.hasErrors());
View Full Code Here


    @Test public void testIptc2Photoshop6BytesFromFile() throws Exception
    {
        final byte[] bytes = TestHelper.loadFileBytes(new File("Tests/com/drew/metadata/iptc/iptc2-photoshop6.bytes"));

        Metadata metadata = new Metadata();
        new IptcReader().extract(new ByteArrayReader(bytes), metadata);

        Assert.assertEquals(1, metadata.getDirectoryCount());
        IptcDirectory directory = metadata.getDirectory(IptcDirectory.class);
        Assert.assertNotNull(directory);
        Assert.assertFalse(directory.getErrors().toString(), directory.hasErrors());
View Full Code Here

public class DrewMetadataDirectoryParser implements IERMetadataDirectoryParser {
  public ERParsedMetadataDirectory parseMetadata(ERUnparsedMetadataDirectory unparsedMetadata) {
    ERParsedMetadataDirectory parsedMetadataDirectory = null;
   
    Metadata metadata = new Metadata();
    ByteArrayReader reader = new ByteArrayReader(unparsedMetadata.getMetadata());
    String directoryName = unparsedMetadata.getDirectoryName();
    if (directoryName.equalsIgnoreCase(IERMetadataDirectory.EXIF)) {
      new ExifReader().extract(reader, metadata);
      parsedMetadataDirectory = new ERParsedMetadataDirectory(directoryName);
    }
View Full Code Here

  }

  private ExifIFD0Directory getExifDirectory(Node node) {
    if ("unknown".equals(node.getNodeName())) {
      if (Integer.parseInt(node.getAttributes().getNamedItem("MarkerTag").getNodeValue()) == EXIF) {
      ByteArrayReader reader = new ByteArrayReader((byte[]) ((IIOMetadataNode) node).getUserObject());
      Metadata metadata = new Metadata();
      new ExifReader().extract(reader, metadata);
      return metadata.getDirectory(ExifIFD0Directory.class);
      }
    }
View Full Code Here

  }

  private IptcDirectory getIptcDirectory(Node node) {
    if ("unknown".equals(node.getNodeName())) {
      if (Integer.parseInt(node.getAttributes().getNamedItem("MarkerTag").getNodeValue()) == IPTC) {
      ByteArrayReader reader = new ByteArrayReader((byte[]) ((IIOMetadataNode) node).getUserObject());
      Metadata metadata = new Metadata();
      new IptcReader().extract(reader, metadata);
        return metadata.getDirectory(IptcDirectory.class);
      }
    }
View Full Code Here

            byte[] jpegSegment = segmentReader.getSegment((byte)(JpegSegmentReader.SEGMENT_SOF0 + i));
            if (jpegSegment == null)
                continue;
            JpegDirectory directory = metadata.getOrCreateDirectory(JpegDirectory.class);
            directory.setInt(JpegDirectory.TAG_JPEG_COMPRESSION_TYPE, i);
            new JpegReader().extract(new ByteArrayReader(jpegSegment), metadata);
            break;
        }

        // There should never be more than one COM segment.
        byte[] comSegment = segmentReader.getSegment(JpegSegmentReader.SEGMENT_COM);
        if (comSegment != null)
            new JpegCommentReader().extract(new ByteArrayReader(comSegment), metadata);

        // Loop through all APP1 segments, checking the leading bytes to identify the format of each.
        for (byte[] app1Segment : segmentReader.getSegments(JpegSegmentReader.SEGMENT_APP1)) {
            if (app1Segment.length > 3 && "EXIF".equalsIgnoreCase(new String(app1Segment, 0, 4)))
                new ExifReader().extract(new ByteArrayReader(app1Segment), metadata);

            //if (app1Segment.length > 27 && "http://ns.adobe.com/xap/1.0/".equalsIgnoreCase(new String(app1Segment, 0, 28)))
            //    new XmpReader().extract(new ByteArrayReader(app1Segment), metadata);
        }

        // Loop through all APPD segments, checking the leading bytes to identify the format of each.
        for (byte[] appdSegment : segmentReader.getSegments(JpegSegmentReader.SEGMENT_APPD)) {
            if (appdSegment.length > 12 && "Photoshop 3.0".compareTo(new String(appdSegment, 0, 13))==0) {
                //new PhotoshopReader().extract(new ByteArrayReader(appdSegment), metadata);
            } else {
                // TODO might be able to check for a leading 0x1c02 for IPTC data...
                new IptcReader().extract(new ByteArrayReader(appdSegment), metadata);
            }
        }

        return metadata;
    }
View Full Code Here

TOP

Related Classes of com.drew.lang.ByteArrayReader

Copyright © 2018 www.massapicom. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.