Class XSSFPicture

java.lang.Object
org.apache.poi.xssf.usermodel.XSSFShape
org.apache.poi.xssf.usermodel.XSSFPicture
All Implemented Interfaces:
Picture, Shape

public final class XSSFPicture extends XSSFShape implements Picture
Represents a picture shape in a SpreadsheetML drawing.
Author:
Yegor Kozlov
  • Constructor Details

    • XSSFPicture

      protected XSSFPicture(XSSFDrawing drawing, org.openxmlformats.schemas.drawingml.x2006.spreadsheetDrawing.CTPicture ctPicture)
      Construct a new XSSFPicture object. This constructor is called from XSSFDrawing.createPicture(XSSFClientAnchor, int)
      Parameters:
      drawing - the XSSFDrawing that owns this picture
  • Method Details

    • prototype

      protected static org.openxmlformats.schemas.drawingml.x2006.spreadsheetDrawing.CTPicture prototype()
      Returns a prototype that is used to construct new shapes
      Returns:
      a prototype that is used to construct new shapes
    • setPictureReference

      protected void setPictureReference(PackageRelationship rel)
      Link this shape with the picture data
      Parameters:
      rel - relationship referring the picture data
    • getCTPicture

      @Internal public org.openxmlformats.schemas.drawingml.x2006.spreadsheetDrawing.CTPicture getCTPicture()
      Return the underlying CTPicture bean that holds all properties for this picture
      Returns:
      the underlying CTPicture bean
    • resize

      public void resize()
      Reset the image to the dimension of the embedded image
      Specified by:
      resize in interface Picture
      See Also:
    • resize

      public void resize(double scale)
      Resize the image proportionally.
      Specified by:
      resize in interface Picture
      See Also:
    • resize

      public void resize(double scaleX, double scaleY)
      Resize the image relatively to its current size.

      Please note, that this method works correctly only for workbooks with the default font size (Calibri 11pt for .xlsx). If the default font is changed the resized image can be streched vertically or horizontally.

      resize(1.0,1.0) keeps the original size,
      resize(0.5,0.5) resize to 50% of the original,
      resize(2.0,2.0) resizes to 200% of the original.
      resize(Double.MAX_VALUE,Double.MAX_VALUE) resizes to the dimension of the embedded image.

      Specified by:
      resize in interface Picture
      Parameters:
      scaleX - the amount by which the image width is multiplied relative to the original width, when set to Double.MAX_VALUE the width of the embedded image is used
      scaleY - the amount by which the image height is multiplied relative to the original height, when set to Double.MAX_VALUE the height of the embedded image is used
    • getPreferredSize

      public XSSFClientAnchor getPreferredSize()
      Calculate the preferred size for this picture.
      Specified by:
      getPreferredSize in interface Picture
      Returns:
      XSSFClientAnchor with the preferred size for this image
    • getPreferredSize

      public XSSFClientAnchor getPreferredSize(double scale)
      Calculate the preferred size for this picture.
      Parameters:
      scale - the amount by which image dimensions are multiplied relative to the original size.
      Returns:
      XSSFClientAnchor with the preferred size for this image
    • getPreferredSize

      public XSSFClientAnchor getPreferredSize(double scaleX, double scaleY)
      Calculate the preferred size for this picture.
      Specified by:
      getPreferredSize in interface Picture
      Parameters:
      scaleX - the amount by which image width is multiplied relative to the original width.
      scaleY - the amount by which image height is multiplied relative to the original height.
      Returns:
      XSSFClientAnchor with the preferred size for this image
    • getImageDimension

      protected static Dimension getImageDimension(PackagePart part, int type)
      Return the dimension of this image
      Parameters:
      part - the package part holding raw picture data
      type - type of the picture: Workbook.PICTURE_TYPE_JPEG, Workbook.PICTURE_TYPE_PNG or Workbook.PICTURE_TYPE_DIB
      Returns:
      image dimension in pixels
    • getImageDimension

      public Dimension getImageDimension()
      Return the dimension of the embedded image in pixel
      Specified by:
      getImageDimension in interface Picture
      Returns:
      image dimension in pixels
    • getPictureData

      public XSSFPictureData getPictureData()
      Return picture data for this shape
      Specified by:
      getPictureData in interface Picture
      Returns:
      picture data for this shape
    • getShapeProperties

      protected org.openxmlformats.schemas.drawingml.x2006.main.CTShapeProperties getShapeProperties()
      Description copied from class: XSSFShape
      Returns xml bean with shape properties.
      Specified by:
      getShapeProperties in class XSSFShape
      Returns:
      xml bean with shape properties.
    • getClientAnchor

      public XSSFClientAnchor getClientAnchor()
      Specified by:
      getClientAnchor in interface Picture
      Returns:
      the anchor that is used by this shape.
    • getSheet

      public XSSFSheet getSheet()
      Specified by:
      getSheet in interface Picture
      Returns:
      the sheet which contains the picture shape
    • getShapeName

      public String getShapeName()
      Specified by:
      getShapeName in interface Shape
      Returns:
      the name of this shape