org.apache.poi.hwpf.usermodel

## Class Picture

- java.lang.Object
- - org.apache.poi.hwpf.usermodel.Picture

-     public final class Picture
      extends java.lang.Object

  Represents embedded picture extracted from Word Document

- - ### Field Summary

    Fields
    Modifier and Type | Field and Description
    --- | ---
    `static byte[]` | `COMPRESSED1`
    `static byte[]` | `COMPRESSED2`
    `static byte[]` | `IHDR`

  - ### Constructor Summary

    Constructors
    Constructor and Description
    `Picture(EscherBlipRecord blipRecord)` Builds a Picture object for a Picture stored as Escher.
    `Picture(int dataBlockStartOfsset, byte[] _dataStream, boolean fillBytes)` Builds a Picture object for a Picture stored in the DataStream

  - ### Method Summary

    All Methods Instance Methods Concrete Methods Deprecated Methods
    Modifier and Type | Method and Description
    --- | ---
    `byte[]` | `getContent()`
    `java.lang.String` | `getDescription()` returns the description stored in the alternative text
    `int` | `getDxaCropLeft()` Deprecated. POI 3.8 beta 4.
    `int` | `getDxaCropRight()` Deprecated. POI 3.8 beta 4.
    `int` | `getDxaGoal()` Gets the initial width of the picture, in twips, prior to cropping or scaling.
    `int` | `getDyaCropBottom()` Deprecated. POI 3.8 beta 5.
    `int` | `getDyaCropTop()` Deprecated. POI 3.8 beta 5.
    `int` | `getDyaGoal()` Gets the initial height of the picture, in twips, prior to cropping or scaling.
    `int` | `getHeight()` returns pixel height of the picture or -1 if dimensions determining was failed
    `int` | `getHorizontalScalingFactor()`
    `java.lang.String` | `getMimeType()` Returns the MIME type for the image
    `byte[]` | `getRawContent()` Returns picture's content as stored in the Word file, i.e.
    `int` | `getSize()`
    `int` | `getStartOffset()`
    `int` | `getVerticalScalingFactor()`
    `int` | `getWidth()` returns pixel width of the picture or -1 if dimensions determining was failed
    `java.lang.String` | `suggestFileExtension()` tries to suggest extension for picture's file by matching signatures of popular image formats to first bytes of picture's contents
    `java.lang.String` | `suggestFullFileName()` Tries to suggest a filename: hex representation of picture structure offset in "Data" stream plus extension that is tried to determine from first byte of picture's content.
    `PictureType` | `suggestPictureType()`
    `void` | `writeImageContent(java.io.OutputStream out)` Writes Picture's content bytes to specified OutputStream.

    - ### Methods inherited from class java.lang.Object

      `clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

- - ### Field Detail

    - #### COMPRESSED1

          public static final byte[] COMPRESSED1

    - #### COMPRESSED2

          public static final byte[] COMPRESSED2

    - #### IHDR

          public static final byte[] IHDR

  - ### Constructor Detail

    - #### Picture

          public Picture(EscherBlipRecord blipRecord)

      Builds a Picture object for a Picture stored as Escher. TODO We need to pass in the PICF data too somehow!

    - #### Picture

          public Picture(int dataBlockStartOfsset,
                         byte[] _dataStream,
                         boolean fillBytes)

      Builds a Picture object for a Picture stored in the DataStream

  - ### Method Detail

    - #### getContent

          public byte[] getContent()

      Returns:
        picture's content as byte array

    - #### getDxaCropLeft

          @Deprecated
          public int getDxaCropLeft()

      Deprecated. POI 3.8 beta 4.
      Returns:
        The amount the picture has been cropped on the left in twips

    - #### getDxaCropRight

          @Deprecated
          public int getDxaCropRight()

      Deprecated. POI 3.8 beta 4.
      Returns:
        The amount the picture has been cropped on the right in twips

    - #### getDxaGoal

          public int getDxaGoal()

      Gets the initial width of the picture, in twips, prior to cropping or scaling.
      Returns:
        the initial width of the picture in twips

    - #### getDyaCropBottom

          @Deprecated
          public int getDyaCropBottom()

      Deprecated. POI 3.8 beta 5.
      Returns:
        The amount the picture has been cropped on the bottom in twips

    - #### getDyaCropTop

          @Deprecated
          public int getDyaCropTop()

      Deprecated. POI 3.8 beta 5.
      Returns:
        The amount the picture has been cropped on the top in twips

    - #### getDyaGoal

          public int getDyaGoal()

      Gets the initial height of the picture, in twips, prior to cropping or scaling.
      Returns:
        the initial width of the picture in twips

    - #### getHeight

          public int getHeight()

      returns pixel height of the picture or -1 if dimensions determining was failed

    - #### getHorizontalScalingFactor

          public int getHorizontalScalingFactor()

      Returns:
        Horizontal scaling factor supplied by user expressed in .001% units

    - #### getMimeType

          public java.lang.String getMimeType()

      Returns the MIME type for the image
      Returns:
        MIME-type for known types of image or "image/unknown" if unknown

    - #### getRawContent

          public byte[] getRawContent()

      Returns picture's content as stored in the Word file, i.e. possibly in compressed form.
      Returns:
        picture's content as it stored in Word file or an empty byte array if it cannot be read.

    - #### getSize

          public int getSize()

      Returns:
        size in bytes of the picture

    - #### getStartOffset

          public int getStartOffset()

      Returns:
        The offset of this picture in the picture bytes, used when matching up with `CharacterRun.getPicOffset()`

    - #### getVerticalScalingFactor

          public int getVerticalScalingFactor()

      Returns:
        Vertical scaling factor supplied by user expressed in .001% units

    - #### getWidth

          public int getWidth()

      returns pixel width of the picture or -1 if dimensions determining was failed

    - #### getDescription

          public java.lang.String getDescription()

      returns the description stored in the alternative text
      Returns:
        pictue description

    - #### suggestFileExtension

          public java.lang.String suggestFileExtension()

      tries to suggest extension for picture's file by matching signatures of popular image formats to first bytes of picture's contents
      Returns:
        suggested file extension

    - #### suggestFullFileName

          public java.lang.String suggestFullFileName()

      Tries to suggest a filename: hex representation of picture structure offset in "Data" stream plus extension that is tried to determine from first byte of picture's content.
      Returns:
        suggested file name

    - #### suggestPictureType

          public PictureType suggestPictureType()

    - #### writeImageContent

          public void writeImageContent(java.io.OutputStream out)
                                 throws java.io.IOException

      Writes Picture's content bytes to specified OutputStream. Is useful when there is need to write picture bytes directly to stream, omitting its representation in memory as distinct byte array.
      Parameters:
        `out` - a stream to write to
      Throws:
        `java.io.IOException` - if some exception is occured while writing to specified out

Copyright 2020 The Apache Software Foundation or its licensors, as applicable.