Hello,
After some investigation and experiments today, I had a solution. I'm not sure if this is the perfect solution.
Just share my solution to you. If you have better one, please share it.
private static Image getImage(Composite composite) {
Display display = Display.getCurrent();
Image image = new Image(display, composite.getBounds());
gc = new GC(image);
composite.print(gc);
gc.dispose();
return image;
}
private static Image combinateImage(Image image1, Image image2) {
Display display = Display.getCurr ent();
int newWidth = image1.getBounds().width + image2.getBounds().width;
int newHeight = image1.getBounds().height > image2.getBounds().height ?
image1.getBounds().height : image2.getBounds().height;
Rectangle rect = new Rectangle(0, 0, newWidth, newHeight);
Image image = new Image(display, rect);
gc = new GC(image);
gc.drawImage(image1, 0, 0);
gc.drawImage(image2, image1.getBounds().width, 0);
gc.dispose();
return image;
}
//Main function after getting the two composites of editor and property view
Image image1 = getImage(composite);Hello,
I have an editor and its property view. I want to snapshot the two windows into one picture.
I know how to print one composite, for example,
Display display = Display.getCurrent();
Image image = new Image(display, composite.getBounds());
gc = new GC(image);
composite.print(gc);
gc.dispose();
ImageLoader loader = new ImageLoader();
loader.data = "" ImageData[] {image.getImageData()};
loader.save(fileName, format);
However, I have no idea about how to print two composites into one picture file.
Could anyone help me?
Best regards,
Hua