private void writeIfd( IfdData ifd, OrderedDataOutputStream dataOutputStream ) throws IOException { ExifTag[] tags = ifd.getAllTags(); dataOutputStream.writeShort( (short) tags.length ); for( ExifTag tag : tags ) { dataOutputStream.writeShort( tag.getTagId() ); dataOutputStream.writeShort( tag.getDataType() ); dataOutputStream.writeInt( tag.getComponentCount() ); // Log.v( TAG, "\n" + tag.toString() ); if( tag.getDataSize() > 4 ) { dataOutputStream.writeInt( tag.getOffset() ); } else { ExifOutputStream.writeTagValue( tag, dataOutputStream ); for( int i = 0, n = 4 - tag.getDataSize(); i < n; i++ ) { dataOutputStream.write( 0 ); } } } dataOutputStream.writeInt( ifd.getOffsetToNextIfd() ); for( ExifTag tag : tags ) { if( tag.getDataSize() > 4 ) { ExifOutputStream.writeTagValue( tag, dataOutputStream ); } } }
private void writeIfd( IfdData ifd, OrderedDataOutputStream dataOutputStream ) throws IOException { ExifTag[] tags = ifd.getAllTags(); dataOutputStream.writeShort( (short) tags.length ); for( ExifTag tag : tags ) { dataOutputStream.writeShort( tag.getTagId() ); dataOutputStream.writeShort( tag.getDataType() ); dataOutputStream.writeInt( tag.getComponentCount() ); // Log.v( TAG, "\n" + tag.toString() ); if( tag.getDataSize() > 4 ) { dataOutputStream.writeInt( tag.getOffset() ); } else { ExifOutputStream.writeTagValue( tag, dataOutputStream ); for( int i = 0, n = 4 - tag.getDataSize(); i < n; i++ ) { dataOutputStream.write( 0 ); } } } dataOutputStream.writeInt( ifd.getOffsetToNextIfd() ); for( ExifTag tag : tags ) { if( tag.getDataSize() > 4 ) { ExifOutputStream.writeTagValue( tag, dataOutputStream ); } } }
dataOutputStream.write( JpegHeader.TAG_M_EXIF ); dataOutputStream.writeShort( (short) ( exifSize + 8 ) ); dataOutputStream.writeInt( EXIF_HEADER ); dataOutputStream.writeShort( (short) 0x0000 ); if( mExifData.getByteOrder() == ByteOrder.BIG_ENDIAN ) { dataOutputStream.writeInt( 8 ); writeAllTags( dataOutputStream );
dataOutputStream.write( JpegHeader.TAG_M_EXIF ); dataOutputStream.writeShort( (short) ( exifSize + 8 ) ); dataOutputStream.writeInt( EXIF_HEADER ); dataOutputStream.writeShort( (short) 0x0000 ); if( mExifData.getByteOrder() == ByteOrder.BIG_ENDIAN ) { dataOutputStream.writeInt( 8 ); writeAllTags( dataOutputStream );
case ExifTag.TYPE_UNSIGNED_LONG: for( int i = 0, n = tag.getComponentCount(); i < n; i++ ) { dataOutputStream.writeInt( (int) tag.getValueAt( i ) );
case ExifTag.TYPE_UNSIGNED_LONG: for( int i = 0, n = tag.getComponentCount(); i < n; i++ ) { dataOutputStream.writeInt( (int) tag.getValueAt( i ) );