У меня есть слайд-шоу с несколькими простыми формами в PowerPoint. Я загружаю его с Apache Poi:
XMLSlideShow ppt = MY_SLIDE_SHOW;
for (XSLFSlide slide: ppt.getSlides()) {
List<XSLFShape> shapeList = slide.getShapes();
for (XSLFShape shape: shapeList) {
// data about shape dimensions
Rectangle2D anchor = shape.getAnchor();
// buffered image to draw into
BufferedImage img = new BufferedImage((int)anchor.getWidth(), (int)anchor.getHeight(), BufferedImage.TYPE_INT_RGB);
Graphics2D graphics = img.createGraphics();
// set a clear transparent background to the image
graphics.setComposite(AlphaComposite.Clear);
graphics.fillRect(0, 0, (int)anchor.getWidth(), (int)anchor.getHeight());
// draw the shape into the buffered image
graphics.setComposite(AlphaComposite.Src);
shape.draw(graphics, new Rectangle(0, 0, (int)anchor.getWidth(), (int)anchor.getHeight()));
graphics.dispose();
}
}
Однако, хотя я могу рендерить фигуры, они выходят с гораздо меньшим разрешением и теряют любые эффекты (свечение, скос, 3d формат, тень , отражение, и т. д. c.)
Здесь ниже приведено сравнение powerpoint (с эффектами) и визуализированного объекта (без эффектов):
![Comparison](https://i.stack.imgur.com/Zomrp.jpg)
Я считаю, что требуемое решение, вероятно, будет тройным, и поэтому буду признателен за ответы на следующие вопросы:
- Как визуализировать эффекты формы вместе с формами?
- Как визуализировать фигуры с более высоким разрешением, чем номинал, а затем уменьшить (а не с меньшим разрешением и масштабированием, как это в настоящее время происходит)?
- Как визуализировать фигуры с прозрачным фоном, который Я удивлен, что в настоящее время не работает?
Спасибо!