FileDocCategorySizeDatePackage
DIB.javaAPI DocApache Poi 3.0.13009Sun Mar 11 12:59:30 GMT 2007org.apache.poi.hslf.blip

DIB

public class DIB extends Bitmap
Represents a DIB picture data in a PPT file
author
Yegor Kozlov

Fields Summary
public static final int
HEADER_SIZE
Size of the BITMAPFILEHEADER structure preceding the actual DIB bytes
Constructors Summary
Methods Summary
public byte[]getData()

        byte[] data = super.getData();

        // bitmap file-header, corresponds to a
        // Windows  BITMAPFILEHEADER structure
        // (For more information, consult the Windows API Programmer's reference )
        byte[] header = new byte[HEADER_SIZE];
        //Specifies the file type. It must be set to the signature word BM (0x4D42) to indicate bitmap.
        LittleEndian.putInt(header, 0, 0x4D42);
        //Specifies the size, in bytes, of the bitmap file.
        LittleEndian.putInt(header, 2, data.length); //DIB length including the header
        //Reserved; set to zero
        LittleEndian.putInt(header, 6, 0);
        //the offset, in bytes, from the header to the bitmap bits (looks like it is always 2)
        LittleEndian.putInt(header, 10, 2);

        //DIB data is the header + dib bytes
        byte[] dib = new byte[header.length + data.length];
        System.arraycopy(header, 0, dib, 0, header.length);
        System.arraycopy(data, 0, dib, header.length, data.length);

        return dib;
    
public intgetSignature()
DIB signature is 0x7A80

return
DIB signature (0x7A80)

        return 0x7A80;
    
public intgetType()

return
type of this picture
see
org.apache.poi.hslf.model.Picture#DIB


                  
      
        return Picture.DIB;
    
public voidsetData(byte[] data)

        //cut off the bitmap file-header
        byte[] dib = new byte[data.length-HEADER_SIZE];
        System.arraycopy(data, HEADER_SIZE, dib, 0, dib.length);
        super.setData(dib);