public class ImageData
Use the An image can be stored inside a shape, linked to external file or both (linked and stored in the document). Regardless of whether the image is stored inside the shape or linked, you can always access the actual
image using the To store an image inside a shape use the Example: Example:
Document doc = new Document(getMyDir() + "Images.docx");
// Get the collection of shapes from the document,
// and save the image data of every shape with an image as a file to the local file system.
NodeCollection shapes = doc.getChildNodes(NodeType.SHAPE, true);
int imageIndex = 0;
for (Shape shape : (Iterable<Shape>) shapes) {
if (shape.hasImage()) {
// The image data of shapes may contain images of many possible image formats.
// We can determine a file extension for each image automatically, based on its format.
String imageFileName = MessageFormat.format("File.ExtractImages.{0}{1}", imageIndex, FileFormatUtil.imageTypeToExtension(shape.getImageData().getImageType()));
shape.getImageData().save(getArtifactsDir() + imageFileName);
imageIndex++;
}
}
Document doc = new Document();
DocumentBuilder builder = new DocumentBuilder(doc);
String imageFileName = getImageDir() + "Windows MetaFile.wmf";
builder.write("Image linked, not stored in the document: ");
Shape shape = new Shape(builder.getDocument(), ShapeType.IMAGE);
shape.setWrapType(WrapType.INLINE);
shape.getImageData().setSourceFullName(imageFileName);
builder.insertNode(shape);
builder.writeln();
builder.write("Image linked and stored in the document: ");
shape = new Shape(builder.getDocument(), ShapeType.IMAGE);
shape.setWrapType(WrapType.INLINE);
shape.getImageData().setSourceFullName(imageFileName);
shape.getImageData().setImage(imageFileName);
builder.insertNode(shape);
builder.writeln();
builder.write("Image stored in the document, but not linked: ");
shape = new Shape(builder.getDocument(), ShapeType.IMAGE);
shape.setWrapType(WrapType.INLINE);
shape.getImageData().setImage(imageFileName);
builder.insertNode(shape);
builder.writeln();
doc.save(getArtifactsDir() + "Image.CreateLinkedImage.docx");
Property Getters/Setters Summary | ||
---|---|---|
boolean | getBiLevel() | |
void | setBiLevel(booleanvalue) | |
Determines whether an image will be displayed in black and white. | ||
BorderCollection | getBorders() | |
Gets the collection of borders of the image. Borders only have effect for inline images.
|
||
double | getBrightness() | |
void | setBrightness(doublevalue) | |
Gets or sets the brightness of the picture. The value for this property must be a number from 0.0 (dimmest) to 1.0 (brightest). | ||
java.awt.Color | getChromaKey() | |
void | setChromaKey(java.awt.Colorvalue) | |
Defines the color value of the image that will be treated as transparent. | ||
double | getContrast() | |
void | setContrast(doublevalue) | |
Gets or sets the contrast for the specified picture. The value for this property must be a number from 0.0 (the least contrast) to 1.0 (the greatest contrast). | ||
double | getCropBottom() | |
void | setCropBottom(doublevalue) | |
Defines the fraction of picture removal from the bottom side. | ||
double | getCropLeft() | |
void | setCropLeft(doublevalue) | |
Defines the fraction of picture removal from the left side. | ||
double | getCropRight() | |
void | setCropRight(doublevalue) | |
Defines the fraction of picture removal from the right side. | ||
double | getCropTop() | |
void | setCropTop(doublevalue) | |
Defines the fraction of picture removal from the top side. | ||
boolean | getGrayScale() | |
void | setGrayScale(booleanvalue) | |
Determines whether a picture will display in grayscale mode. | ||
boolean | hasImage() | |
Returns true if the shape has image bytes or links an image.
|
||
byte[] | getImageBytes() | |
void | setImageBytes(byte[]value) | |
Gets or sets the raw bytes of the image stored in the shape. | ||
ImageSize | getImageSize() | |
Gets the information about image size and resolution.
|
||
int | getImageType() | |
Gets the type of the image.
The value of the property is ImageType integer constant. |
||
boolean | isLink() | |
Returns true if the image is linked to the shape (when |
||
boolean | isLinkOnly() | |
Returns true if the image is linked and not stored in the document.
|
||
java.lang.String | getSourceFullName() | |
void | setSourceFullName(java.lang.Stringvalue) | |
Gets or sets the path and name of the source file for the linked image. | ||
java.lang.String | getTitle() | |
void | setTitle(java.lang.Stringvalue) | |
Defines the title of an image. |
Method Summary | ||
---|---|---|
void | save(java.io.OutputStream stream) | |
Saves the image into the specified stream.
|
||
void | save(java.lang.String fileName) | |
Saves the image into a file.
|
||
void | setImage(java.awt.image.BufferedImage image) | |
Sets the image that the shape displays.
|
||
void | setImage(java.io.InputStream stream) | |
Sets the image that the shape displays.
|
||
void | setImage(java.lang.String fileName) | |
Sets the image that the shape displays.
|
||
byte[] | toByteArray() | |
Returns image bytes for any image regardless whether the image is stored or linked.
|
||
java.awt.image.BufferedImage | toImage() | |
Gets the image stored in the shape as a java BufferedImage object.
|
public boolean getBiLevel() / public void setBiLevel(boolean value)
The default value is false.
Example:
Shows how to edit a shape's image data.Document imgSourceDoc = new Document(getMyDir() + "Images.docx"); Shape sourceShape = (Shape) imgSourceDoc.getChildNodes(NodeType.SHAPE, true).get(0); Document dstDoc = new Document(); // Import a shape from the source document, and append it to the first paragraph. Shape importedShape = (Shape)dstDoc.importNode(sourceShape, true); dstDoc.getFirstSection().getBody().getFirstParagraph().appendChild(importedShape); // The imported shape contains an image. We can access the image's attributes and raw data via the ImageData object. ImageData imageData = importedShape.getImageData(); imageData.setTitle("Imported Image"); Assert.assertTrue(imageData.hasImage()); // If an image has no borders, its ImageData object will define the border color as empty. Assert.assertEquals(imageData.getBorders().getCount(), 4); Assert.assertEquals(imageData.getBorders().get(0).getColor(), new Color(0, true)); // This image does not link to another shape or image file in the local file system. Assert.assertFalse(imageData.isLink()); Assert.assertFalse(imageData.isLinkOnly()); // The "Brightness" and "Contrast" properties define image brightness and contrast // on a 0-1 scale, with the default value at 0.5. imageData.setBrightness(0.8d); imageData.setContrast(1.0d); // The above brightness and contrast values have created an image with a lot of white. // We can select a color with the ChromaKey attribute to replace with transparency, such as white. imageData.setChromaKey(Color.WHITE); // Import the source shape again, and set the image to monochrome. importedShape = (Shape) dstDoc.importNode(sourceShape, true); dstDoc.getFirstSection().getBody().getFirstParagraph().appendChild(importedShape); importedShape.getImageData().setGrayScale(true); // Import the source shape again to create a third image, and set it to BiLevel. // BiLevel sets every pixel to either black or white, whichever is closer to the original color. importedShape = (Shape)dstDoc.importNode(sourceShape, true); dstDoc.getFirstSection().getBody().getFirstParagraph().appendChild(importedShape); importedShape.getImageData().setBiLevel(true); // Cropping is determined on a 0-1 scale. Cropping a side by 0.3 // will crop 30% of the image out at the cropped side. importedShape.getImageData().setCropBottom(0.3d); importedShape.getImageData().setCropLeft(0.3d); importedShape.getImageData().setCropTop(0.3d); importedShape.getImageData().setCropRight(0.3d); dstDoc.save(getArtifactsDir() + "Drawing.ImageData.docx");
public BorderCollection getBorders()
Example:
Shows how to edit a shape's image data.Document imgSourceDoc = new Document(getMyDir() + "Images.docx"); Shape sourceShape = (Shape) imgSourceDoc.getChildNodes(NodeType.SHAPE, true).get(0); Document dstDoc = new Document(); // Import a shape from the source document, and append it to the first paragraph. Shape importedShape = (Shape)dstDoc.importNode(sourceShape, true); dstDoc.getFirstSection().getBody().getFirstParagraph().appendChild(importedShape); // The imported shape contains an image. We can access the image's attributes and raw data via the ImageData object. ImageData imageData = importedShape.getImageData(); imageData.setTitle("Imported Image"); Assert.assertTrue(imageData.hasImage()); // If an image has no borders, its ImageData object will define the border color as empty. Assert.assertEquals(imageData.getBorders().getCount(), 4); Assert.assertEquals(imageData.getBorders().get(0).getColor(), new Color(0, true)); // This image does not link to another shape or image file in the local file system. Assert.assertFalse(imageData.isLink()); Assert.assertFalse(imageData.isLinkOnly()); // The "Brightness" and "Contrast" properties define image brightness and contrast // on a 0-1 scale, with the default value at 0.5. imageData.setBrightness(0.8d); imageData.setContrast(1.0d); // The above brightness and contrast values have created an image with a lot of white. // We can select a color with the ChromaKey attribute to replace with transparency, such as white. imageData.setChromaKey(Color.WHITE); // Import the source shape again, and set the image to monochrome. importedShape = (Shape) dstDoc.importNode(sourceShape, true); dstDoc.getFirstSection().getBody().getFirstParagraph().appendChild(importedShape); importedShape.getImageData().setGrayScale(true); // Import the source shape again to create a third image, and set it to BiLevel. // BiLevel sets every pixel to either black or white, whichever is closer to the original color. importedShape = (Shape)dstDoc.importNode(sourceShape, true); dstDoc.getFirstSection().getBody().getFirstParagraph().appendChild(importedShape); importedShape.getImageData().setBiLevel(true); // Cropping is determined on a 0-1 scale. Cropping a side by 0.3 // will crop 30% of the image out at the cropped side. importedShape.getImageData().setCropBottom(0.3d); importedShape.getImageData().setCropLeft(0.3d); importedShape.getImageData().setCropTop(0.3d); importedShape.getImageData().setCropRight(0.3d); dstDoc.save(getArtifactsDir() + "Drawing.ImageData.docx");
public double getBrightness() / public void setBrightness(double value)
The default value is 0.5.
Example:
Shows how to edit a shape's image data.Document imgSourceDoc = new Document(getMyDir() + "Images.docx"); Shape sourceShape = (Shape) imgSourceDoc.getChildNodes(NodeType.SHAPE, true).get(0); Document dstDoc = new Document(); // Import a shape from the source document, and append it to the first paragraph. Shape importedShape = (Shape)dstDoc.importNode(sourceShape, true); dstDoc.getFirstSection().getBody().getFirstParagraph().appendChild(importedShape); // The imported shape contains an image. We can access the image's attributes and raw data via the ImageData object. ImageData imageData = importedShape.getImageData(); imageData.setTitle("Imported Image"); Assert.assertTrue(imageData.hasImage()); // If an image has no borders, its ImageData object will define the border color as empty. Assert.assertEquals(imageData.getBorders().getCount(), 4); Assert.assertEquals(imageData.getBorders().get(0).getColor(), new Color(0, true)); // This image does not link to another shape or image file in the local file system. Assert.assertFalse(imageData.isLink()); Assert.assertFalse(imageData.isLinkOnly()); // The "Brightness" and "Contrast" properties define image brightness and contrast // on a 0-1 scale, with the default value at 0.5. imageData.setBrightness(0.8d); imageData.setContrast(1.0d); // The above brightness and contrast values have created an image with a lot of white. // We can select a color with the ChromaKey attribute to replace with transparency, such as white. imageData.setChromaKey(Color.WHITE); // Import the source shape again, and set the image to monochrome. importedShape = (Shape) dstDoc.importNode(sourceShape, true); dstDoc.getFirstSection().getBody().getFirstParagraph().appendChild(importedShape); importedShape.getImageData().setGrayScale(true); // Import the source shape again to create a third image, and set it to BiLevel. // BiLevel sets every pixel to either black or white, whichever is closer to the original color. importedShape = (Shape)dstDoc.importNode(sourceShape, true); dstDoc.getFirstSection().getBody().getFirstParagraph().appendChild(importedShape); importedShape.getImageData().setBiLevel(true); // Cropping is determined on a 0-1 scale. Cropping a side by 0.3 // will crop 30% of the image out at the cropped side. importedShape.getImageData().setCropBottom(0.3d); importedShape.getImageData().setCropLeft(0.3d); importedShape.getImageData().setCropTop(0.3d); importedShape.getImageData().setCropRight(0.3d); dstDoc.save(getArtifactsDir() + "Drawing.ImageData.docx");
public java.awt.Color getChromaKey() / public void setChromaKey(java.awt.Color value)
The default value is 0.
Example:
Shows how to edit a shape's image data.Document imgSourceDoc = new Document(getMyDir() + "Images.docx"); Shape sourceShape = (Shape) imgSourceDoc.getChildNodes(NodeType.SHAPE, true).get(0); Document dstDoc = new Document(); // Import a shape from the source document, and append it to the first paragraph. Shape importedShape = (Shape)dstDoc.importNode(sourceShape, true); dstDoc.getFirstSection().getBody().getFirstParagraph().appendChild(importedShape); // The imported shape contains an image. We can access the image's attributes and raw data via the ImageData object. ImageData imageData = importedShape.getImageData(); imageData.setTitle("Imported Image"); Assert.assertTrue(imageData.hasImage()); // If an image has no borders, its ImageData object will define the border color as empty. Assert.assertEquals(imageData.getBorders().getCount(), 4); Assert.assertEquals(imageData.getBorders().get(0).getColor(), new Color(0, true)); // This image does not link to another shape or image file in the local file system. Assert.assertFalse(imageData.isLink()); Assert.assertFalse(imageData.isLinkOnly()); // The "Brightness" and "Contrast" properties define image brightness and contrast // on a 0-1 scale, with the default value at 0.5. imageData.setBrightness(0.8d); imageData.setContrast(1.0d); // The above brightness and contrast values have created an image with a lot of white. // We can select a color with the ChromaKey attribute to replace with transparency, such as white. imageData.setChromaKey(Color.WHITE); // Import the source shape again, and set the image to monochrome. importedShape = (Shape) dstDoc.importNode(sourceShape, true); dstDoc.getFirstSection().getBody().getFirstParagraph().appendChild(importedShape); importedShape.getImageData().setGrayScale(true); // Import the source shape again to create a third image, and set it to BiLevel. // BiLevel sets every pixel to either black or white, whichever is closer to the original color. importedShape = (Shape)dstDoc.importNode(sourceShape, true); dstDoc.getFirstSection().getBody().getFirstParagraph().appendChild(importedShape); importedShape.getImageData().setBiLevel(true); // Cropping is determined on a 0-1 scale. Cropping a side by 0.3 // will crop 30% of the image out at the cropped side. importedShape.getImageData().setCropBottom(0.3d); importedShape.getImageData().setCropLeft(0.3d); importedShape.getImageData().setCropTop(0.3d); importedShape.getImageData().setCropRight(0.3d); dstDoc.save(getArtifactsDir() + "Drawing.ImageData.docx");
public double getContrast() / public void setContrast(double value)
The default value is 0.5.
Example:
Shows how to edit a shape's image data.Document imgSourceDoc = new Document(getMyDir() + "Images.docx"); Shape sourceShape = (Shape) imgSourceDoc.getChildNodes(NodeType.SHAPE, true).get(0); Document dstDoc = new Document(); // Import a shape from the source document, and append it to the first paragraph. Shape importedShape = (Shape)dstDoc.importNode(sourceShape, true); dstDoc.getFirstSection().getBody().getFirstParagraph().appendChild(importedShape); // The imported shape contains an image. We can access the image's attributes and raw data via the ImageData object. ImageData imageData = importedShape.getImageData(); imageData.setTitle("Imported Image"); Assert.assertTrue(imageData.hasImage()); // If an image has no borders, its ImageData object will define the border color as empty. Assert.assertEquals(imageData.getBorders().getCount(), 4); Assert.assertEquals(imageData.getBorders().get(0).getColor(), new Color(0, true)); // This image does not link to another shape or image file in the local file system. Assert.assertFalse(imageData.isLink()); Assert.assertFalse(imageData.isLinkOnly()); // The "Brightness" and "Contrast" properties define image brightness and contrast // on a 0-1 scale, with the default value at 0.5. imageData.setBrightness(0.8d); imageData.setContrast(1.0d); // The above brightness and contrast values have created an image with a lot of white. // We can select a color with the ChromaKey attribute to replace with transparency, such as white. imageData.setChromaKey(Color.WHITE); // Import the source shape again, and set the image to monochrome. importedShape = (Shape) dstDoc.importNode(sourceShape, true); dstDoc.getFirstSection().getBody().getFirstParagraph().appendChild(importedShape); importedShape.getImageData().setGrayScale(true); // Import the source shape again to create a third image, and set it to BiLevel. // BiLevel sets every pixel to either black or white, whichever is closer to the original color. importedShape = (Shape)dstDoc.importNode(sourceShape, true); dstDoc.getFirstSection().getBody().getFirstParagraph().appendChild(importedShape); importedShape.getImageData().setBiLevel(true); // Cropping is determined on a 0-1 scale. Cropping a side by 0.3 // will crop 30% of the image out at the cropped side. importedShape.getImageData().setCropBottom(0.3d); importedShape.getImageData().setCropLeft(0.3d); importedShape.getImageData().setCropTop(0.3d); importedShape.getImageData().setCropRight(0.3d); dstDoc.save(getArtifactsDir() + "Drawing.ImageData.docx");
public double getCropBottom() / public void setCropBottom(double value)
The amount of cropping can range from -1.0 to 1.0. The default value is 0. Note that a value of 1 will display no picture at all. Negative values will result in the picture being squeezed inward from the edge being cropped (the empty space between the picture and the cropped edge will be filled by the fill color of the shape). Positive values less than 1 will result in the remaining picture being stretched to fit the shape.
The default value is 0.
Example:
Shows how to edit a shape's image data.Document imgSourceDoc = new Document(getMyDir() + "Images.docx"); Shape sourceShape = (Shape) imgSourceDoc.getChildNodes(NodeType.SHAPE, true).get(0); Document dstDoc = new Document(); // Import a shape from the source document, and append it to the first paragraph. Shape importedShape = (Shape)dstDoc.importNode(sourceShape, true); dstDoc.getFirstSection().getBody().getFirstParagraph().appendChild(importedShape); // The imported shape contains an image. We can access the image's attributes and raw data via the ImageData object. ImageData imageData = importedShape.getImageData(); imageData.setTitle("Imported Image"); Assert.assertTrue(imageData.hasImage()); // If an image has no borders, its ImageData object will define the border color as empty. Assert.assertEquals(imageData.getBorders().getCount(), 4); Assert.assertEquals(imageData.getBorders().get(0).getColor(), new Color(0, true)); // This image does not link to another shape or image file in the local file system. Assert.assertFalse(imageData.isLink()); Assert.assertFalse(imageData.isLinkOnly()); // The "Brightness" and "Contrast" properties define image brightness and contrast // on a 0-1 scale, with the default value at 0.5. imageData.setBrightness(0.8d); imageData.setContrast(1.0d); // The above brightness and contrast values have created an image with a lot of white. // We can select a color with the ChromaKey attribute to replace with transparency, such as white. imageData.setChromaKey(Color.WHITE); // Import the source shape again, and set the image to monochrome. importedShape = (Shape) dstDoc.importNode(sourceShape, true); dstDoc.getFirstSection().getBody().getFirstParagraph().appendChild(importedShape); importedShape.getImageData().setGrayScale(true); // Import the source shape again to create a third image, and set it to BiLevel. // BiLevel sets every pixel to either black or white, whichever is closer to the original color. importedShape = (Shape)dstDoc.importNode(sourceShape, true); dstDoc.getFirstSection().getBody().getFirstParagraph().appendChild(importedShape); importedShape.getImageData().setBiLevel(true); // Cropping is determined on a 0-1 scale. Cropping a side by 0.3 // will crop 30% of the image out at the cropped side. importedShape.getImageData().setCropBottom(0.3d); importedShape.getImageData().setCropLeft(0.3d); importedShape.getImageData().setCropTop(0.3d); importedShape.getImageData().setCropRight(0.3d); dstDoc.save(getArtifactsDir() + "Drawing.ImageData.docx");
public double getCropLeft() / public void setCropLeft(double value)
The amount of cropping can range from -1.0 to 1.0. The default value is 0. Note that a value of 1 will display no picture at all. Negative values will result in the picture being squeezed inward from the edge being cropped (the empty space between the picture and the cropped edge will be filled by the fill color of the shape). Positive values less than 1 will result in the remaining picture being stretched to fit the shape.
The default value is 0.
Example:
Shows how to edit a shape's image data.Document imgSourceDoc = new Document(getMyDir() + "Images.docx"); Shape sourceShape = (Shape) imgSourceDoc.getChildNodes(NodeType.SHAPE, true).get(0); Document dstDoc = new Document(); // Import a shape from the source document, and append it to the first paragraph. Shape importedShape = (Shape)dstDoc.importNode(sourceShape, true); dstDoc.getFirstSection().getBody().getFirstParagraph().appendChild(importedShape); // The imported shape contains an image. We can access the image's attributes and raw data via the ImageData object. ImageData imageData = importedShape.getImageData(); imageData.setTitle("Imported Image"); Assert.assertTrue(imageData.hasImage()); // If an image has no borders, its ImageData object will define the border color as empty. Assert.assertEquals(imageData.getBorders().getCount(), 4); Assert.assertEquals(imageData.getBorders().get(0).getColor(), new Color(0, true)); // This image does not link to another shape or image file in the local file system. Assert.assertFalse(imageData.isLink()); Assert.assertFalse(imageData.isLinkOnly()); // The "Brightness" and "Contrast" properties define image brightness and contrast // on a 0-1 scale, with the default value at 0.5. imageData.setBrightness(0.8d); imageData.setContrast(1.0d); // The above brightness and contrast values have created an image with a lot of white. // We can select a color with the ChromaKey attribute to replace with transparency, such as white. imageData.setChromaKey(Color.WHITE); // Import the source shape again, and set the image to monochrome. importedShape = (Shape) dstDoc.importNode(sourceShape, true); dstDoc.getFirstSection().getBody().getFirstParagraph().appendChild(importedShape); importedShape.getImageData().setGrayScale(true); // Import the source shape again to create a third image, and set it to BiLevel. // BiLevel sets every pixel to either black or white, whichever is closer to the original color. importedShape = (Shape)dstDoc.importNode(sourceShape, true); dstDoc.getFirstSection().getBody().getFirstParagraph().appendChild(importedShape); importedShape.getImageData().setBiLevel(true); // Cropping is determined on a 0-1 scale. Cropping a side by 0.3 // will crop 30% of the image out at the cropped side. importedShape.getImageData().setCropBottom(0.3d); importedShape.getImageData().setCropLeft(0.3d); importedShape.getImageData().setCropTop(0.3d); importedShape.getImageData().setCropRight(0.3d); dstDoc.save(getArtifactsDir() + "Drawing.ImageData.docx");
public double getCropRight() / public void setCropRight(double value)
The amount of cropping can range from -1.0 to 1.0. The default value is 0. Note that a value of 1 will display no picture at all. Negative values will result in the picture being squeezed inward from the edge being cropped (the empty space between the picture and the cropped edge will be filled by the fill color of the shape). Positive values less than 1 will result in the remaining picture being stretched to fit the shape.
The default value is 0.
Example:
Shows how to edit a shape's image data.Document imgSourceDoc = new Document(getMyDir() + "Images.docx"); Shape sourceShape = (Shape) imgSourceDoc.getChildNodes(NodeType.SHAPE, true).get(0); Document dstDoc = new Document(); // Import a shape from the source document, and append it to the first paragraph. Shape importedShape = (Shape)dstDoc.importNode(sourceShape, true); dstDoc.getFirstSection().getBody().getFirstParagraph().appendChild(importedShape); // The imported shape contains an image. We can access the image's attributes and raw data via the ImageData object. ImageData imageData = importedShape.getImageData(); imageData.setTitle("Imported Image"); Assert.assertTrue(imageData.hasImage()); // If an image has no borders, its ImageData object will define the border color as empty. Assert.assertEquals(imageData.getBorders().getCount(), 4); Assert.assertEquals(imageData.getBorders().get(0).getColor(), new Color(0, true)); // This image does not link to another shape or image file in the local file system. Assert.assertFalse(imageData.isLink()); Assert.assertFalse(imageData.isLinkOnly()); // The "Brightness" and "Contrast" properties define image brightness and contrast // on a 0-1 scale, with the default value at 0.5. imageData.setBrightness(0.8d); imageData.setContrast(1.0d); // The above brightness and contrast values have created an image with a lot of white. // We can select a color with the ChromaKey attribute to replace with transparency, such as white. imageData.setChromaKey(Color.WHITE); // Import the source shape again, and set the image to monochrome. importedShape = (Shape) dstDoc.importNode(sourceShape, true); dstDoc.getFirstSection().getBody().getFirstParagraph().appendChild(importedShape); importedShape.getImageData().setGrayScale(true); // Import the source shape again to create a third image, and set it to BiLevel. // BiLevel sets every pixel to either black or white, whichever is closer to the original color. importedShape = (Shape)dstDoc.importNode(sourceShape, true); dstDoc.getFirstSection().getBody().getFirstParagraph().appendChild(importedShape); importedShape.getImageData().setBiLevel(true); // Cropping is determined on a 0-1 scale. Cropping a side by 0.3 // will crop 30% of the image out at the cropped side. importedShape.getImageData().setCropBottom(0.3d); importedShape.getImageData().setCropLeft(0.3d); importedShape.getImageData().setCropTop(0.3d); importedShape.getImageData().setCropRight(0.3d); dstDoc.save(getArtifactsDir() + "Drawing.ImageData.docx");
public double getCropTop() / public void setCropTop(double value)
The amount of cropping can range from -1.0 to 1.0. The default value is 0. Note that a value of 1 will display no picture at all. Negative values will result in the picture being squeezed inward from the edge being cropped (the empty space between the picture and the cropped edge will be filled by the fill color of the shape). Positive values less than 1 will result in the remaining picture being stretched to fit the shape.
The default value is 0.
Example:
Shows how to edit a shape's image data.Document imgSourceDoc = new Document(getMyDir() + "Images.docx"); Shape sourceShape = (Shape) imgSourceDoc.getChildNodes(NodeType.SHAPE, true).get(0); Document dstDoc = new Document(); // Import a shape from the source document, and append it to the first paragraph. Shape importedShape = (Shape)dstDoc.importNode(sourceShape, true); dstDoc.getFirstSection().getBody().getFirstParagraph().appendChild(importedShape); // The imported shape contains an image. We can access the image's attributes and raw data via the ImageData object. ImageData imageData = importedShape.getImageData(); imageData.setTitle("Imported Image"); Assert.assertTrue(imageData.hasImage()); // If an image has no borders, its ImageData object will define the border color as empty. Assert.assertEquals(imageData.getBorders().getCount(), 4); Assert.assertEquals(imageData.getBorders().get(0).getColor(), new Color(0, true)); // This image does not link to another shape or image file in the local file system. Assert.assertFalse(imageData.isLink()); Assert.assertFalse(imageData.isLinkOnly()); // The "Brightness" and "Contrast" properties define image brightness and contrast // on a 0-1 scale, with the default value at 0.5. imageData.setBrightness(0.8d); imageData.setContrast(1.0d); // The above brightness and contrast values have created an image with a lot of white. // We can select a color with the ChromaKey attribute to replace with transparency, such as white. imageData.setChromaKey(Color.WHITE); // Import the source shape again, and set the image to monochrome. importedShape = (Shape) dstDoc.importNode(sourceShape, true); dstDoc.getFirstSection().getBody().getFirstParagraph().appendChild(importedShape); importedShape.getImageData().setGrayScale(true); // Import the source shape again to create a third image, and set it to BiLevel. // BiLevel sets every pixel to either black or white, whichever is closer to the original color. importedShape = (Shape)dstDoc.importNode(sourceShape, true); dstDoc.getFirstSection().getBody().getFirstParagraph().appendChild(importedShape); importedShape.getImageData().setBiLevel(true); // Cropping is determined on a 0-1 scale. Cropping a side by 0.3 // will crop 30% of the image out at the cropped side. importedShape.getImageData().setCropBottom(0.3d); importedShape.getImageData().setCropLeft(0.3d); importedShape.getImageData().setCropTop(0.3d); importedShape.getImageData().setCropRight(0.3d); dstDoc.save(getArtifactsDir() + "Drawing.ImageData.docx");
public boolean getGrayScale() / public void setGrayScale(boolean value)
The default value is false.
Example:
Shows how to edit a shape's image data.Document imgSourceDoc = new Document(getMyDir() + "Images.docx"); Shape sourceShape = (Shape) imgSourceDoc.getChildNodes(NodeType.SHAPE, true).get(0); Document dstDoc = new Document(); // Import a shape from the source document, and append it to the first paragraph. Shape importedShape = (Shape)dstDoc.importNode(sourceShape, true); dstDoc.getFirstSection().getBody().getFirstParagraph().appendChild(importedShape); // The imported shape contains an image. We can access the image's attributes and raw data via the ImageData object. ImageData imageData = importedShape.getImageData(); imageData.setTitle("Imported Image"); Assert.assertTrue(imageData.hasImage()); // If an image has no borders, its ImageData object will define the border color as empty. Assert.assertEquals(imageData.getBorders().getCount(), 4); Assert.assertEquals(imageData.getBorders().get(0).getColor(), new Color(0, true)); // This image does not link to another shape or image file in the local file system. Assert.assertFalse(imageData.isLink()); Assert.assertFalse(imageData.isLinkOnly()); // The "Brightness" and "Contrast" properties define image brightness and contrast // on a 0-1 scale, with the default value at 0.5. imageData.setBrightness(0.8d); imageData.setContrast(1.0d); // The above brightness and contrast values have created an image with a lot of white. // We can select a color with the ChromaKey attribute to replace with transparency, such as white. imageData.setChromaKey(Color.WHITE); // Import the source shape again, and set the image to monochrome. importedShape = (Shape) dstDoc.importNode(sourceShape, true); dstDoc.getFirstSection().getBody().getFirstParagraph().appendChild(importedShape); importedShape.getImageData().setGrayScale(true); // Import the source shape again to create a third image, and set it to BiLevel. // BiLevel sets every pixel to either black or white, whichever is closer to the original color. importedShape = (Shape)dstDoc.importNode(sourceShape, true); dstDoc.getFirstSection().getBody().getFirstParagraph().appendChild(importedShape); importedShape.getImageData().setBiLevel(true); // Cropping is determined on a 0-1 scale. Cropping a side by 0.3 // will crop 30% of the image out at the cropped side. importedShape.getImageData().setCropBottom(0.3d); importedShape.getImageData().setCropLeft(0.3d); importedShape.getImageData().setCropTop(0.3d); importedShape.getImageData().setCropRight(0.3d); dstDoc.save(getArtifactsDir() + "Drawing.ImageData.docx");
public boolean hasImage()
Example:
Shows how to save all images from a document to the file system.Document imgSourceDoc = new Document(getMyDir() + "Images.docx"); // Shapes with the "HasImage" flag set store and display all of the document's images. NodeCollection shapes = imgSourceDoc.getChildNodes(NodeType.SHAPE, true); Assert.assertEquals(shapes.getCount(), 10); // Go through each shape and save its image. for (int i = 0; i < shapes.getCount(); i++) { Shape shape = (Shape) shapes.get(i); ImageData imageData = shape.getImageData(); if (imageData.hasImage()) { InputStream format = imageData.toStream(); // We will use an ImageReader to determine an image's file extension ImageInputStream iis = ImageIO.createImageInputStream(format); Iterator<ImageReader> imageReaders = ImageIO.getImageReaders(iis); while (imageReaders.hasNext()) { ImageReader reader = imageReaders.next(); String fileExtension = reader.getFormatName(); OutputStream fileStream = new FileOutputStream(getArtifactsDir() + MessageFormat.format("Drawing.SaveAllImages.{0}.{1}", i, fileExtension)); try { imageData.save(fileStream); } finally { if (fileStream != null) fileStream.close(); } } } }
public byte[] getImageBytes() / public void setImageBytes(byte[] value)
Setting the value to null
or an empty array will remove the image from the shape.
Returns null
if the image is not stored in the document (e.g the image is probably linked in this case).
Example:
Shows how to create an image file from a shape's raw image data.Document imgSourceDoc = new Document(getMyDir() + "Images.docx"); Shape imgShape = (Shape)imgSourceDoc.getChild(NodeType.SHAPE, 0, true); Assert.assertTrue(imgShape.hasImage()); // ToByteArray() returns the array stored in the ImageBytes property. Assert.assertEquals(imgShape.getImageData().getImageBytes(), imgShape.getImageData().toByteArray()); // Save the shape's image data to an image file in the local file system. InputStream imgStream = imgShape.getImageData().toStream(); try { File imageFile = new File(getArtifactsDir() + "Drawing.GetDataFromImage.png"); imageFile.createNewFile(); copyInputStreamToFile(imgStream, imageFile); } finally { if (imgStream != null) imgStream.close(); }
public ImageSize getImageSize()
If the image is linked only and not stored in the document, returns zero size.
Example:
Shows how to resize a shape with an image.Document doc = new Document(); DocumentBuilder builder = new DocumentBuilder(doc); // By default, the image is inserted at 100% scale Shape shape = builder.insertImage(getImageDir() + "Logo.jpg"); // Reduce the overall size of the shape by 50% shape.setWidth(shape.getWidth() * 0.5); shape.setHeight(shape.getHeight() * 0.5); Assert.assertEquals(75.0d, shape.getWidth()); Assert.assertEquals(75.0d, shape.getHeight()); // However, we can also go back to the original image size and scale from there, for example, to 110% ImageSize imageSize = shape.getImageData().getImageSize(); shape.setWidth(imageSize.getWidthPoints() * 1.1); shape.setHeight(imageSize.getHeightPoints() * 1.1); Assert.assertEquals(330.0d, shape.getWidth()); Assert.assertEquals(330.0d, shape.getHeight()); doc.save(getArtifactsDir() + "Image.ScaleImage.docx");
public int getImageType()
Example:
Shows how to extract images from a document, and save them to the local file system as individual files.Document doc = new Document(getMyDir() + "Images.docx"); // Get the collection of shapes from the document, // and save the image data of every shape with an image as a file to the local file system. NodeCollection shapes = doc.getChildNodes(NodeType.SHAPE, true); int imageIndex = 0; for (Shape shape : (Iterable<Shape>) shapes) { if (shape.hasImage()) { // The image data of shapes may contain images of many possible image formats. // We can determine a file extension for each image automatically, based on its format. String imageFileName = MessageFormat.format("File.ExtractImages.{0}{1}", imageIndex, FileFormatUtil.imageTypeToExtension(shape.getImageData().getImageType())); shape.getImageData().save(getArtifactsDir() + imageFileName); imageIndex++; } }
public boolean isLink()
Example:
Shows how to edit a shape's image data.Document imgSourceDoc = new Document(getMyDir() + "Images.docx"); Shape sourceShape = (Shape) imgSourceDoc.getChildNodes(NodeType.SHAPE, true).get(0); Document dstDoc = new Document(); // Import a shape from the source document, and append it to the first paragraph. Shape importedShape = (Shape)dstDoc.importNode(sourceShape, true); dstDoc.getFirstSection().getBody().getFirstParagraph().appendChild(importedShape); // The imported shape contains an image. We can access the image's attributes and raw data via the ImageData object. ImageData imageData = importedShape.getImageData(); imageData.setTitle("Imported Image"); Assert.assertTrue(imageData.hasImage()); // If an image has no borders, its ImageData object will define the border color as empty. Assert.assertEquals(imageData.getBorders().getCount(), 4); Assert.assertEquals(imageData.getBorders().get(0).getColor(), new Color(0, true)); // This image does not link to another shape or image file in the local file system. Assert.assertFalse(imageData.isLink()); Assert.assertFalse(imageData.isLinkOnly()); // The "Brightness" and "Contrast" properties define image brightness and contrast // on a 0-1 scale, with the default value at 0.5. imageData.setBrightness(0.8d); imageData.setContrast(1.0d); // The above brightness and contrast values have created an image with a lot of white. // We can select a color with the ChromaKey attribute to replace with transparency, such as white. imageData.setChromaKey(Color.WHITE); // Import the source shape again, and set the image to monochrome. importedShape = (Shape) dstDoc.importNode(sourceShape, true); dstDoc.getFirstSection().getBody().getFirstParagraph().appendChild(importedShape); importedShape.getImageData().setGrayScale(true); // Import the source shape again to create a third image, and set it to BiLevel. // BiLevel sets every pixel to either black or white, whichever is closer to the original color. importedShape = (Shape)dstDoc.importNode(sourceShape, true); dstDoc.getFirstSection().getBody().getFirstParagraph().appendChild(importedShape); importedShape.getImageData().setBiLevel(true); // Cropping is determined on a 0-1 scale. Cropping a side by 0.3 // will crop 30% of the image out at the cropped side. importedShape.getImageData().setCropBottom(0.3d); importedShape.getImageData().setCropLeft(0.3d); importedShape.getImageData().setCropTop(0.3d); importedShape.getImageData().setCropRight(0.3d); dstDoc.save(getArtifactsDir() + "Drawing.ImageData.docx");
public boolean isLinkOnly()
Example:
Shows how to edit a shape's image data.Document imgSourceDoc = new Document(getMyDir() + "Images.docx"); Shape sourceShape = (Shape) imgSourceDoc.getChildNodes(NodeType.SHAPE, true).get(0); Document dstDoc = new Document(); // Import a shape from the source document, and append it to the first paragraph. Shape importedShape = (Shape)dstDoc.importNode(sourceShape, true); dstDoc.getFirstSection().getBody().getFirstParagraph().appendChild(importedShape); // The imported shape contains an image. We can access the image's attributes and raw data via the ImageData object. ImageData imageData = importedShape.getImageData(); imageData.setTitle("Imported Image"); Assert.assertTrue(imageData.hasImage()); // If an image has no borders, its ImageData object will define the border color as empty. Assert.assertEquals(imageData.getBorders().getCount(), 4); Assert.assertEquals(imageData.getBorders().get(0).getColor(), new Color(0, true)); // This image does not link to another shape or image file in the local file system. Assert.assertFalse(imageData.isLink()); Assert.assertFalse(imageData.isLinkOnly()); // The "Brightness" and "Contrast" properties define image brightness and contrast // on a 0-1 scale, with the default value at 0.5. imageData.setBrightness(0.8d); imageData.setContrast(1.0d); // The above brightness and contrast values have created an image with a lot of white. // We can select a color with the ChromaKey attribute to replace with transparency, such as white. imageData.setChromaKey(Color.WHITE); // Import the source shape again, and set the image to monochrome. importedShape = (Shape) dstDoc.importNode(sourceShape, true); dstDoc.getFirstSection().getBody().getFirstParagraph().appendChild(importedShape); importedShape.getImageData().setGrayScale(true); // Import the source shape again to create a third image, and set it to BiLevel. // BiLevel sets every pixel to either black or white, whichever is closer to the original color. importedShape = (Shape)dstDoc.importNode(sourceShape, true); dstDoc.getFirstSection().getBody().getFirstParagraph().appendChild(importedShape); importedShape.getImageData().setBiLevel(true); // Cropping is determined on a 0-1 scale. Cropping a side by 0.3 // will crop 30% of the image out at the cropped side. importedShape.getImageData().setCropBottom(0.3d); importedShape.getImageData().setCropLeft(0.3d); importedShape.getImageData().setCropTop(0.3d); importedShape.getImageData().setCropRight(0.3d); dstDoc.save(getArtifactsDir() + "Drawing.ImageData.docx");
public java.lang.String getSourceFullName() / public void setSourceFullName(java.lang.String value)
The default value is an empty string.
If
Example:
Shows how to insert a linked image into a document.Document doc = new Document(); DocumentBuilder builder = new DocumentBuilder(doc); String imageFileName = getImageDir() + "Windows MetaFile.wmf"; builder.write("Image linked, not stored in the document: "); Shape shape = new Shape(builder.getDocument(), ShapeType.IMAGE); shape.setWrapType(WrapType.INLINE); shape.getImageData().setSourceFullName(imageFileName); builder.insertNode(shape); builder.writeln(); builder.write("Image linked and stored in the document: "); shape = new Shape(builder.getDocument(), ShapeType.IMAGE); shape.setWrapType(WrapType.INLINE); shape.getImageData().setSourceFullName(imageFileName); shape.getImageData().setImage(imageFileName); builder.insertNode(shape); builder.writeln(); builder.write("Image stored in the document, but not linked: "); shape = new Shape(builder.getDocument(), ShapeType.IMAGE); shape.setWrapType(WrapType.INLINE); shape.getImageData().setImage(imageFileName); builder.insertNode(shape); builder.writeln(); doc.save(getArtifactsDir() + "Image.CreateLinkedImage.docx");
public java.lang.String getTitle() / public void setTitle(java.lang.String value)
The default value is an empty string.
Example:
Shows how to edit a shape's image data.Document imgSourceDoc = new Document(getMyDir() + "Images.docx"); Shape sourceShape = (Shape) imgSourceDoc.getChildNodes(NodeType.SHAPE, true).get(0); Document dstDoc = new Document(); // Import a shape from the source document, and append it to the first paragraph. Shape importedShape = (Shape)dstDoc.importNode(sourceShape, true); dstDoc.getFirstSection().getBody().getFirstParagraph().appendChild(importedShape); // The imported shape contains an image. We can access the image's attributes and raw data via the ImageData object. ImageData imageData = importedShape.getImageData(); imageData.setTitle("Imported Image"); Assert.assertTrue(imageData.hasImage()); // If an image has no borders, its ImageData object will define the border color as empty. Assert.assertEquals(imageData.getBorders().getCount(), 4); Assert.assertEquals(imageData.getBorders().get(0).getColor(), new Color(0, true)); // This image does not link to another shape or image file in the local file system. Assert.assertFalse(imageData.isLink()); Assert.assertFalse(imageData.isLinkOnly()); // The "Brightness" and "Contrast" properties define image brightness and contrast // on a 0-1 scale, with the default value at 0.5. imageData.setBrightness(0.8d); imageData.setContrast(1.0d); // The above brightness and contrast values have created an image with a lot of white. // We can select a color with the ChromaKey attribute to replace with transparency, such as white. imageData.setChromaKey(Color.WHITE); // Import the source shape again, and set the image to monochrome. importedShape = (Shape) dstDoc.importNode(sourceShape, true); dstDoc.getFirstSection().getBody().getFirstParagraph().appendChild(importedShape); importedShape.getImageData().setGrayScale(true); // Import the source shape again to create a third image, and set it to BiLevel. // BiLevel sets every pixel to either black or white, whichever is closer to the original color. importedShape = (Shape)dstDoc.importNode(sourceShape, true); dstDoc.getFirstSection().getBody().getFirstParagraph().appendChild(importedShape); importedShape.getImageData().setBiLevel(true); // Cropping is determined on a 0-1 scale. Cropping a side by 0.3 // will crop 30% of the image out at the cropped side. importedShape.getImageData().setCropBottom(0.3d); importedShape.getImageData().setCropLeft(0.3d); importedShape.getImageData().setCropTop(0.3d); importedShape.getImageData().setCropRight(0.3d); dstDoc.save(getArtifactsDir() + "Drawing.ImageData.docx");
public void save(java.io.OutputStream stream) throws java.lang.Exception
Is it the responsibility of the caller to dispose the stream object.
stream
- The stream where to save the image to.Example:
Shows how to save all images from a document to the file system.Document imgSourceDoc = new Document(getMyDir() + "Images.docx"); // Shapes with the "HasImage" flag set store and display all of the document's images. NodeCollection shapes = imgSourceDoc.getChildNodes(NodeType.SHAPE, true); Assert.assertEquals(shapes.getCount(), 10); // Go through each shape and save its image. for (int i = 0; i < shapes.getCount(); i++) { Shape shape = (Shape) shapes.get(i); ImageData imageData = shape.getImageData(); if (imageData.hasImage()) { InputStream format = imageData.toStream(); // We will use an ImageReader to determine an image's file extension ImageInputStream iis = ImageIO.createImageInputStream(format); Iterator<ImageReader> imageReaders = ImageIO.getImageReaders(iis); while (imageReaders.hasNext()) { ImageReader reader = imageReaders.next(); String fileExtension = reader.getFormatName(); OutputStream fileStream = new FileOutputStream(getArtifactsDir() + MessageFormat.format("Drawing.SaveAllImages.{0}.{1}", i, fileExtension)); try { imageData.save(fileStream); } finally { if (fileStream != null) fileStream.close(); } } } }
public void save(java.lang.String fileName) throws java.lang.Exception
fileName
- The file name where to save the image.Example:
Shows how to extract images from a document, and save them to the local file system as individual files.Document doc = new Document(getMyDir() + "Images.docx"); // Get the collection of shapes from the document, // and save the image data of every shape with an image as a file to the local file system. NodeCollection shapes = doc.getChildNodes(NodeType.SHAPE, true); int imageIndex = 0; for (Shape shape : (Iterable<Shape>) shapes) { if (shape.hasImage()) { // The image data of shapes may contain images of many possible image formats. // We can determine a file extension for each image automatically, based on its format. String imageFileName = MessageFormat.format("File.ExtractImages.{0}{1}", imageIndex, FileFormatUtil.imageTypeToExtension(shape.getImageData().getImageType())); shape.getImageData().save(getArtifactsDir() + imageFileName); imageIndex++; } }
public void setImage(java.awt.image.BufferedImage image) throws java.lang.Exception
image
- The image object.Example:
Shows how to display images from the local file system in a document.Document doc = new Document(); // Below are two ways of getting an image from a file in the local file system. // 1 - Create an image object from an image file: BufferedImage srcImage = ImageIO.read(new File(getImageDir() + "Logo.jpg")); // To display an image in a document, we will need to create a shape // which will contain an image, and then append it to the document's body. Shape imgShape = new Shape(doc, ShapeType.IMAGE); doc.getFirstSection().getBody().getFirstParagraph().appendChild(imgShape); imgShape.getImageData().setImage(srcImage); srcImage.flush(); // 2 - Open an image file from the local file system using a stream: InputStream stream = new FileInputStream(getImageDir() + "Logo.jpg"); try { imgShape = new Shape(doc, ShapeType.IMAGE); doc.getFirstSection().getBody().getFirstParagraph().appendChild(imgShape); imgShape.getImageData().setImage(stream); imgShape.setLeft(150.0f); } finally { if (stream != null) stream.close(); } doc.save(getArtifactsDir() + "Drawing.ImportImage.docx");
public void setImage(java.io.InputStream stream) throws java.lang.Exception
stream
- The stream that contains the image.
The stream will be read from the current position, so one should be careful about stream position.Example:
Shows how to display images from the local file system in a document.Document doc = new Document(); // Below are two ways of getting an image from a file in the local file system. // 1 - Create an image object from an image file: BufferedImage srcImage = ImageIO.read(new File(getImageDir() + "Logo.jpg")); // To display an image in a document, we will need to create a shape // which will contain an image, and then append it to the document's body. Shape imgShape = new Shape(doc, ShapeType.IMAGE); doc.getFirstSection().getBody().getFirstParagraph().appendChild(imgShape); imgShape.getImageData().setImage(srcImage); srcImage.flush(); // 2 - Open an image file from the local file system using a stream: InputStream stream = new FileInputStream(getImageDir() + "Logo.jpg"); try { imgShape = new Shape(doc, ShapeType.IMAGE); doc.getFirstSection().getBody().getFirstParagraph().appendChild(imgShape); imgShape.getImageData().setImage(stream); imgShape.setLeft(150.0f); } finally { if (stream != null) stream.close(); } doc.save(getArtifactsDir() + "Drawing.ImportImage.docx");
public void setImage(java.lang.String fileName) throws java.lang.Exception
fileName
- The image file. Can be a file name or a URL.Example:
Shows how to insert a linked image into a document.Document doc = new Document(); DocumentBuilder builder = new DocumentBuilder(doc); String imageFileName = getImageDir() + "Windows MetaFile.wmf"; builder.write("Image linked, not stored in the document: "); Shape shape = new Shape(builder.getDocument(), ShapeType.IMAGE); shape.setWrapType(WrapType.INLINE); shape.getImageData().setSourceFullName(imageFileName); builder.insertNode(shape); builder.writeln(); builder.write("Image linked and stored in the document: "); shape = new Shape(builder.getDocument(), ShapeType.IMAGE); shape.setWrapType(WrapType.INLINE); shape.getImageData().setSourceFullName(imageFileName); shape.getImageData().setImage(imageFileName); builder.insertNode(shape); builder.writeln(); builder.write("Image stored in the document, but not linked: "); shape = new Shape(builder.getDocument(), ShapeType.IMAGE); shape.setWrapType(WrapType.INLINE); shape.getImageData().setImage(imageFileName); builder.insertNode(shape); builder.writeln(); doc.save(getArtifactsDir() + "Image.CreateLinkedImage.docx");
public byte[] toByteArray() throws java.lang.Exception
If the image is linked, downloads the image every time it is called.
Example:
Shows how to create an image file from a shape's raw image data.Document imgSourceDoc = new Document(getMyDir() + "Images.docx"); Shape imgShape = (Shape)imgSourceDoc.getChild(NodeType.SHAPE, 0, true); Assert.assertTrue(imgShape.hasImage()); // ToByteArray() returns the array stored in the ImageBytes property. Assert.assertEquals(imgShape.getImageData().getImageBytes(), imgShape.getImageData().toByteArray()); // Save the shape's image data to an image file in the local file system. InputStream imgStream = imgShape.getImageData().toStream(); try { File imageFile = new File(getArtifactsDir() + "Drawing.GetDataFromImage.png"); imageFile.createNewFile(); copyInputStreamToFile(imgStream, imageFile); } finally { if (imgStream != null) imgStream.close(); }
public java.awt.image.BufferedImage toImage() throws java.lang.Exception
Tries to create a new java.awt.image.BufferedImage object from image bytes every time this method is called. If javax.imageio.ImageReader can't read image bytes (emf, wmf, tiff, etc.) the method returns null.
It is the responsibility of the caller to dispose the image object.
Example:
Shows how to save all images from a document to the file system.Document imgSourceDoc = new Document(getMyDir() + "Images.docx"); // Shapes with the "HasImage" flag set store and display all of the document's images. NodeCollection shapes = imgSourceDoc.getChildNodes(NodeType.SHAPE, true); Assert.assertEquals(shapes.getCount(), 10); // Go through each shape and save its image. for (int i = 0; i < shapes.getCount(); i++) { Shape shape = (Shape) shapes.get(i); ImageData imageData = shape.getImageData(); if (imageData.hasImage()) { InputStream format = imageData.toStream(); // We will use an ImageReader to determine an image's file extension ImageInputStream iis = ImageIO.createImageInputStream(format); Iterator<ImageReader> imageReaders = ImageIO.getImageReaders(iis); while (imageReaders.hasNext()) { ImageReader reader = imageReaders.next(); String fileExtension = reader.getFormatName(); OutputStream fileStream = new FileOutputStream(getArtifactsDir() + MessageFormat.format("Drawing.SaveAllImages.{0}.{1}", i, fileExtension)); try { imageData.save(fileStream); } finally { if (fileStream != null) fileStream.close(); } } } }