Package com.drew.imaging.tiff

Source Code of com.drew.imaging.tiff.TiffMetadataReader

/*
* This is public domain software - that is, you can do whatever you want
* with it, and include it software that is licensed under the GNU or the
* BSD license, or whatever other licence you choose, including proprietary
* closed source licenses.  I do ask that you leave this header in tact.
*
* If you make modifications to this code that you think would benefit the
* wider community, please send me a copy and I'll post it on my site.
*
* If you make use of this code, I'd appreciate hearing about it.
*   metadata_extractor [at] drewnoakes [dot] com
* Latest version of this software kept at
*   http://drewnoakes.com/
*
* Created by Darren Salomons & Drew Noakes.
*/
package com.drew.imaging.tiff;

import java.io.ByteArrayOutputStream;
import java.io.DataInputStream;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.io.InputStream;

import com.drew.metadata.Metadata;
import com.drew.metadata.exif.ExifReader;

/**
* Obtains all available metadata from TIFF formatted files.  Note that TIFF files include many digital camera RAW
* formats, including Canon (CRW, CR2) and Nikon (NEF).
*/
public class TiffMetadataReader
{
  public static Metadata readMetadata(File file) throws TiffProcessingException
    {
    Metadata metadata = new Metadata();
   
    DataInputStream x;
    try {
      x = new DataInputStream(new FileInputStream(file));
    } catch (FileNotFoundException e) {
      throw new TiffProcessingException("JPEG file does not exist", e);
    }
    byte[] buffer = new byte[(int)file.length()];
    try {
      x.readFully(buffer);
    } catch (IOException e) {
      throw new TiffProcessingException("Error copying file contents to byte buffer", e);
    }
   
    new ExifReader(buffer).extractTiff(metadata);
    return metadata;
  }

  public static Metadata readMetadata(InputStream in) throws TiffProcessingException
    {
    ByteArrayOutputStream out = new ByteArrayOutputStream();
    int b;
    try {
      while((b = in.read()) != -1) {
        out.write(b);
      }
    } catch (IOException e) {
      throw new TiffProcessingException("Error processing tiff stream", e);
    }
        Metadata metadata = new Metadata();
    new ExifReader(out.toByteArray()).extractTiff(metadata);
    return metadata;
  }
}
TOP

Related Classes of com.drew.imaging.tiff.TiffMetadataReader

TOP
Copyright © 2018 www.massapi.com. 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.