org.apache.poi.xssf.usermodel
Class XSSFPictureData

java.lang.Object
  extended by org.apache.poi.POIXMLDocumentPart
      extended by org.apache.poi.xssf.usermodel.XSSFPictureData
All Implemented Interfaces:
PictureData

public class XSSFPictureData
extends POIXMLDocumentPart
implements PictureData

Raw picture data, normally attached to a SpreadsheetML Drawing. As a rule, pictures are stored in the /xl/media/ part of a SpreadsheetML package.


Field Summary
protected static POIXMLRelation[] RELATIONS
          Relationships for each known picture type
 
Fields inherited from class org.apache.poi.POIXMLDocumentPart
DEFAULT_XML_OPTIONS
 
Constructor Summary
protected XSSFPictureData()
          Create a new XSSFPictureData node
protected XSSFPictureData(PackagePart part, PackageRelationship rel)
          Construct XSSFPictureData from a package part
 
Method Summary
 byte[] getData()
          Gets the picture data as a byte array.
 java.lang.String getMimeType()
          Returns the mime type for the image
 int getPictureType()
          Return an integer constant that specifies type of this picture
protected  void prepareForCommit()
          *PictureData objects store the actual content in the part directly without keeping a copy like all others therefore we need to handle them differently.
 java.lang.String suggestFileExtension()
          Suggests a file extension for this image.
 
Methods inherited from class org.apache.poi.POIXMLDocumentPart
addRelation, commit, createRelationship, createRelationship, createRelationship, getPackagePart, getPackageRelationship, getParent, getRelationById, getRelationId, getRelations, getTargetPart, onDocumentCreate, onDocumentRead, onDocumentRemove, onSave, read, rebase, removeRelation, removeRelation, toString
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Field Detail

RELATIONS

protected static final POIXMLRelation[] RELATIONS
Relationships for each known picture type

Constructor Detail

XSSFPictureData

protected XSSFPictureData()
Create a new XSSFPictureData node

See Also:
XSSFWorkbook.addPicture(byte[], int)

XSSFPictureData

protected XSSFPictureData(PackagePart part,
                          PackageRelationship rel)
Construct XSSFPictureData from a package part

Parameters:
part - the package part holding the drawing data,
rel - the package relationship holding this drawing, the relationship type must be http://schemas.openxmlformats.org/officeDocument/2006/relationships/image
Method Detail

getData

public byte[] getData()
Gets the picture data as a byte array.

Note, that this call might be expensive since all the picture data is copied into a temporary byte array. You can grab the picture data directly from the underlying package part as follows:
InputStream is = getPackagePart().getInputStream();

Specified by:
getData in interface PictureData
Returns:
the picture data.

suggestFileExtension

public java.lang.String suggestFileExtension()
Suggests a file extension for this image.

Specified by:
suggestFileExtension in interface PictureData
Returns:
the file extension.

getPictureType

public int getPictureType()
Return an integer constant that specifies type of this picture

Returns:
an integer constant that specifies type of this picture
See Also:
Workbook.PICTURE_TYPE_EMF, Workbook.PICTURE_TYPE_WMF, Workbook.PICTURE_TYPE_PICT, Workbook.PICTURE_TYPE_JPEG, Workbook.PICTURE_TYPE_PNG, Workbook.PICTURE_TYPE_DIB

getMimeType

public java.lang.String getMimeType()
Description copied from interface: PictureData
Returns the mime type for the image

Specified by:
getMimeType in interface PictureData

prepareForCommit

protected void prepareForCommit()
*PictureData objects store the actual content in the part directly without keeping a copy like all others therefore we need to handle them differently.

Overrides:
prepareForCommit in class POIXMLDocumentPart


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