⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 escherbitmapblip.java

📁 java 报表 to office文档: 本包由java语言开发
💻 JAVA
字号:
package org.apache.poi.ddf;import org.apache.poi.util.HexDump;import org.apache.poi.util.LittleEndian;import java.io.ByteArrayOutputStream;/** * @author Glen Stampoultzis * @version $Id: EscherBitmapBlip.java,v 1.2 2005/05/01 21:55:23 glens Exp $ */public class EscherBitmapBlip        extends EscherBlipRecord{    public static final short RECORD_ID_JPEG = (short) 0xF018 + 5;    public static final short RECORD_ID_PNG = (short) 0xF018 + 6;    public static final short RECORD_ID_DIB = (short) 0xF018 + 7;    private static final int HEADER_SIZE = 8;    private byte[] field_1_UID;    private byte field_2_marker = (byte) 0xFF;    /**     * This method deserializes the record from a byte array.     *     * @param data          The byte array containing the escher record information     * @param offset        The starting offset into <code>data</code>.     * @param recordFactory May be null since this is not a container record.     * @return The number of bytes read from the byte array.     */    public int fillFields( byte[] data, int offset, EscherRecordFactory recordFactory )    {        int bytesAfterHeader = readHeader( data, offset );        int pos = offset + HEADER_SIZE;        field_1_UID = new byte[16];        System.arraycopy( data, pos, field_1_UID, 0, 16 ); pos += 16;        field_2_marker = data[pos]; pos++;        field_pictureData = new byte[bytesAfterHeader - 17];        System.arraycopy( data, pos, field_pictureData, 0, field_pictureData.length );        return bytesAfterHeader + HEADER_SIZE;    }    /**      * Serializes the record to an existing byte array.      *      * @param offset    the offset within the byte array      * @param data      the data array to serialize to      * @param listener  a listener for begin and end serialization events.  This      *                  is useful because the serialization is      *                  hierarchical/recursive and sometimes you need to be able      *                  break into that.      * @return the number of bytes written.      */     public int serialize( int offset, byte[] data, EscherSerializationListener listener )     {         listener.beforeRecordSerialize(offset, getRecordId(), this);         LittleEndian.putShort( data, offset, getOptions() );         LittleEndian.putShort( data, offset + 2, getRecordId() );         LittleEndian.putInt( data, offset + 4, getRecordSize() - HEADER_SIZE );         int pos = offset + HEADER_SIZE;         System.arraycopy( field_1_UID, 0, data, pos, 16 );         data[pos + 16] = field_2_marker;         System.arraycopy( field_pictureData, 0, data, pos + 17, field_pictureData.length );         listener.afterRecordSerialize(offset + getRecordSize(), getRecordId(), getRecordSize(), this);         return HEADER_SIZE + 16 + 1 + field_pictureData.length;     }    /**      * Returns the number of bytes that are required to serialize this record.      *      * @return Number of bytes      */     public int getRecordSize()     {         return 8 + 16 + 1 + field_pictureData.length;     }    public byte[] getUID()    {        return field_1_UID;    }    public void setUID( byte[] field_1_UID )    {        this.field_1_UID = field_1_UID;    }    public byte getMarker()    {        return field_2_marker;    }    public void setMarker( byte field_2_marker )    {        this.field_2_marker = field_2_marker;    }    public byte[] getPicturedata()    {        return field_pictureData;    }    public void setPictureData(byte[] pictureData)    {        field_pictureData = pictureData;    }    public String toString()    {        String nl = System.getProperty( "line.separator" );        String extraData;        ByteArrayOutputStream b = new ByteArrayOutputStream();        try        {            HexDump.dump( this.field_pictureData, 0, b, 0 );            extraData = b.toString();        }        catch ( Exception e )        {            extraData = e.toString();        }        return getClass().getName() + ":" + nl +                "  RecordId: 0x" + HexDump.toHex( getRecordId() ) + nl +                "  Options: 0x" + HexDump.toHex( getOptions() ) + nl +                "  UID: 0x" + HexDump.toHex( field_1_UID ) + nl +                "  Marker: 0x" + HexDump.toHex( field_2_marker ) + nl +                "  Extra Data:" + nl + extraData;    }}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -