Class ExifParser

  • All Implemented Interfaces:

    
    public class ExifParser
    
                        

    This class provides a low-level EXIF parsing API. Given a JPEG format InputStream, the caller can request which IFD's to read via parse with given options.

    Below is an example of getting EXIF data from IFD 0 and EXIF IFD using the parser.

    void parse() {
        ExifParser parser = ExifParser.parse(mImageInputStream,
                ExifParser.OPTION_IFD_0 | ExifParser.OPTIONS_IFD_EXIF);
        int event = parser.next();
        while (event != ExifParser.EVENT_END) {
            switch (event) {
                case ExifParser.EVENT_START_OF_IFD:
                    break;
                case ExifParser.EVENT_NEW_TAG:
                    ExifTag tag = parser.getTag();
                    if (!tag.hasValue()) {
                        parser.registerForTagValue(tag);
                    } else {
                        processTag(tag);
                    }
                    break;
                case ExifParser.EVENT_VALUE_OF_REGISTERED_TAG:
                    tag = parser.getTag();
                    if (tag.getDataType() != ExifTag.TYPE_UNDEFINED) {
                        processTag(tag);
                    }
                    break;
            }
            event = parser.next();
        }
    }
    
    void processTag(ExifTag tag) {
        // process the tag as you like.
    }
    
    • Constructor Detail

    • Method Detail