Class HSLFPictureData

java.lang.Object
org.apache.poi.hslf.usermodel.HSLFPictureData
All Implemented Interfaces:
GenericRecord, PictureData
Direct Known Subclasses:
Bitmap, Metafile

public abstract class HSLFPictureData extends Object implements PictureData, GenericRecord
A class that represents image data contained in a slide show.
  • Constructor Details

  • Method Details

    • setSignature

      public abstract void setSignature(int signature)
    • getRawData

      public byte[] getRawData()
      Returns the formatted, binary data of this picture excluding the preamble bytes.

      Primarily intended for internal POI use. Use PictureData.getData() to retrieve the picture represented by this object.

      Returns:
      Picture data formatted for the HSLF format.
      See Also:
    • setRawData

      @Deprecated @Removal(version="5.3") public void setRawData(byte[] data)
      Deprecated.
      Set image data using setData(byte[]).
      Sets the formatted data for this picture.

      Primarily intended for internal POI use. Use setData(byte[]) to change the picture represented by this object.

      Parameters:
      data - Picture data formatted for the HSLF format. Excludes the preamble.
      See Also:
    • getOffset

      public int getOffset()
      File offset in the 'Pictures' stream
      Returns:
      offset in the 'Pictures' stream
    • setOffset

      @Deprecated @Removal(version="5.3") public void setOffset(int offset)
      Deprecated.
      This function was only intended for POI internal use. If you have a use case you're concerned about, please open an issue in the POI issue tracker.
      Set offset of this picture in the 'Pictures' stream. We need to set it when a new picture is created.
      Parameters:
      offset - in the 'Pictures' stream
    • getUID

      public byte[] getUID()
      Returns 16-byte checksum of this picture
    • getChecksum

      public byte[] getChecksum()
      Description copied from interface: PictureData
      Gets the checksum - the checksum can be of various length - mostly it's 8 (XSLF) or 16 (HSLF) bytes long.
      Specified by:
      getChecksum in interface PictureData
      Returns:
      the checksum
    • getChecksum

      public static byte[] getChecksum(byte[] data)
      Compute 16-byte checksum of this picture using MD5 algorithm.
    • write

      public void write(OutputStream out) throws IOException
      Write this picture into OutputStream
      Throws:
      IOException
    • create

      Deprecated.
      Use HSLFSlideShow.addPicture(byte[], org.apache.poi.sl.usermodel.PictureData.PictureType) or one of its overloads to create new HSLFPictureData. This API led to detached HSLFPictureData instances (See Bugzilla 46122) and prevented adding additional functionality.
      Create an instance of HSLFPictureData by type.
      Parameters:
      type - type of picture.
      Returns:
      concrete instance of HSLFPictureData.
    • getHeader

      public byte[] getHeader()
      Return 24 byte header which preceeds the actual picture data.

      The header consists of 2-byte signature, 2-byte type, 4-byte image size and 16-byte checksum of the image data.

      Returns:
      the 24 byte header which preceeds the actual picture data.
    • getIndex

      public int getIndex()
      Returns the 1-based index of this picture.
      Returns:
      the 1-based index of this pictures within the pictures stream
    • setIndex

      public void setIndex(int index)
      Parameters:
      index - sets the 1-based index of this pictures within the pictures stream
    • setData

      public final void setData(byte[] data) throws IOException
      Description copied from interface: PictureData
      Sets the binary picture data

      The format of the data must match the format of PictureData.getType(). Failure to match the picture data may result in data loss.

      Specified by:
      setData in interface PictureData
      Parameters:
      data - picture data
      Throws:
      IOException
    • getContentType

      public final String getContentType()
      Description copied from interface: PictureData
      Returns content type (mime type) of this picture.
      Specified by:
      getContentType in interface PictureData
      Returns:
      content type of this picture.
    • getImageDimensionInPixels

      public Dimension getImageDimensionInPixels()
      Description copied from interface: PictureData
      Return the original image dimensions in pixels
      Specified by:
      getImageDimensionInPixels in interface PictureData
      See Also:
    • getGenericProperties

      public Map<String,Supplier<?>> getGenericProperties()
      Specified by:
      getGenericProperties in interface GenericRecord