/** * When getting {@link #EVENT_NEW_TAG} in the tag area of IFD, the tag may * not contain the value if the size of the value is greater than 4 bytes. * When the value is not available here, call this method so that the parser * will emit {@link #EVENT_VALUE_OF_REGISTERED_TAG} when it reaches the area * where the value is located. * * @see #EVENT_VALUE_OF_REGISTERED_TAG */ protected void registerForTagValue( ExifTag tag ) { if( tag.getOffset() >= mTiffStream.getReadByteCount() ) { mCorrespondingEvent.put( tag.getOffset(), new ExifTagEvent( tag, true ) ); } }
/** * When getting {@link #EVENT_NEW_TAG} in the tag area of IFD, the tag may * not contain the value if the size of the value is greater than 4 bytes. * When the value is not available here, call this method so that the parser * will emit {@link #EVENT_VALUE_OF_REGISTERED_TAG} when it reaches the area * where the value is located. * * @see #EVENT_VALUE_OF_REGISTERED_TAG */ protected void registerForTagValue( ExifTag tag ) { if( tag.getOffset() >= mTiffStream.getReadByteCount() ) { mCorrespondingEvent.put( tag.getOffset(), new ExifTagEvent( tag, true ) ); } }
int offset = mTiffStream.getReadByteCount(); int endOfTags = mIfdStartOffset + OFFSET_SIZE + TAG_SIZE * mNumOfTagInIfd; if( offset < endOfTags ) { offsetSize = mCorrespondingEvent.firstEntry().getKey() - mTiffStream.getReadByteCount();
int offset = mTiffStream.getReadByteCount(); int endOfTags = mIfdStartOffset + OFFSET_SIZE + TAG_SIZE * mNumOfTagInIfd; if( offset < endOfTags ) { offsetSize = mCorrespondingEvent.firstEntry().getKey() - mTiffStream.getReadByteCount();
mUncompressedDataPosition = dataStream.getReadByteCount(); return tiffStream;
mUncompressedDataPosition = dataStream.getReadByteCount(); return tiffStream;
int size = tag.getComponentCount(); if( mCorrespondingEvent.size() > 0 ) { if( mCorrespondingEvent.firstEntry().getKey() < mTiffStream.getReadByteCount() + size ) { Object event = mCorrespondingEvent.firstEntry().getValue(); if( event instanceof ImageEvent ) { Log.w( TAG, "Tag value for tag: \n" + ( (ExifTagEvent) event ).tag.toString() + " overlaps value for tag: \n" + tag.toString() ); size = mCorrespondingEvent.firstEntry().getKey() - mTiffStream.getReadByteCount(); Log.w( TAG, "Invalid size of tag: \n" + tag.toString() + " setting count to: " + size ); tag.forceSetComponentCount( size );
int size = tag.getComponentCount(); if( mCorrespondingEvent.size() > 0 ) { if( mCorrespondingEvent.firstEntry().getKey() < mTiffStream.getReadByteCount() + size ) { Object event = mCorrespondingEvent.firstEntry().getValue(); if( event instanceof ImageEvent ) { Log.w( TAG, "Tag value for tag: \n" + ( (ExifTagEvent) event ).tag.toString() + " overlaps value for tag: \n" + tag.toString() ); size = mCorrespondingEvent.firstEntry().getKey() - mTiffStream.getReadByteCount(); Log.w( TAG, "Invalid size of tag: \n" + tag.toString() + " setting count to: " + size ); tag.forceSetComponentCount( size );
int offset = mTiffStream.getReadByteCount(); if( offset > endOfTags ) { return;
int offset = mTiffStream.getReadByteCount(); if( offset > endOfTags ) { return;
mTiffStream.skip( 4 - dataSize ); tag.setOffset( mTiffStream.getReadByteCount() - 4 );
mTiffStream.skip( 4 - dataSize ); tag.setOffset( mTiffStream.getReadByteCount() - 4 );