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.
  • Field Details

    • CHECKSUM_SIZE

      protected static final int CHECKSUM_SIZE
      Size of the image checksum calculated using MD5 algorithm.
      See Also:
  • Constructor Details

    • HSLFPictureData

      @Internal protected HSLFPictureData(EscherContainerRecord bStore, EscherBSERecord bse)
      Creates a new instance.
      Parameters:
      bStore - BStore record tracking all pictures. Should be attached to the slideshow that this picture is linked to.
      bse - Record referencing this picture. Should be attached to the slideshow that this picture is linked to.
  • Method Details

    • getSignature

      protected abstract int getSignature()
      Blip signature.
    • setSignature

      public abstract void setSignature(int signature)
    • getUIDInstanceCount

      protected int getUIDInstanceCount()
      The instance type/signatures defines if one or two UID instances will be included
    • setUIDInstanceCount

      protected void setUIDInstanceCount(int uidInstanceCount)
      The instance type/signatures defines if one or two UID instances will be included
      Parameters:
      uidInstanceCount - the number of uid sequences
    • 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:
    • getOffset

      public int getOffset()
      File offset in the 'Pictures' stream
      Returns:
      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
    • getHeader

      public byte[] getHeader()
      Return 24 byte header which precedes 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 precedes 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
    • formatImageForSlideshow

      protected abstract byte[] formatImageForSlideshow(byte[] data)
      Formats the picture data for storage in the slideshow.

      Images stored in HSLFSlideShows are represented differently than when they are standalone files. The exact formatting differs for each image type.

      Parameters:
      data - Original image data. If these bytes were written to a disk, a common image viewer would be able to render the image.
      Returns:
      Formatted image representation.
    • 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