diff --git a/html2image/src/main/java/gui/ava/html/image/HtmlImageGenerator.java b/html2image/src/main/java/gui/ava/html/image/HtmlImageGenerator.java
index aaebabb..b1406e9 100644
--- a/html2image/src/main/java/gui/ava/html/image/HtmlImageGenerator.java
+++ b/html2image/src/main/java/gui/ava/html/image/HtmlImageGenerator.java
@@ -1,5 +1,6 @@
package gui.ava.html.image;
+import gui.ava.html.Html2Image;
import gui.ava.html.image.util.FormatNameUtil;
import gui.ava.html.image.util.SynchronousHTMLEditorKit;
import gui.ava.html.link.LinkInfo;
@@ -23,12 +24,18 @@
*/
public class HtmlImageGenerator {
private JEditorPane editorPane;
+ private Color backgroundColor = Color.WHITE;
static final Dimension DEFAULT_SIZE = new Dimension(800, 800);
public HtmlImageGenerator() {
editorPane = createJEditorPane();
}
+ public HtmlImageGenerator(Color backgroundColor) {
+ this.backgroundColor = backgroundColor;
+ editorPane = createJEditorPane();
+ }
+
public ComponentOrientation getOrientation() {
return editorPane.getComponentOrientation();
}
@@ -133,14 +140,15 @@ public void saveAsImage(String file) {
public void saveAsImage(File file) {
BufferedImage image = getBufferedImage();
- BufferedImage bufferedImageToWrite = new BufferedImage(image.getWidth(), image.getHeight(), BufferedImage.TYPE_INT_RGB);
- bufferedImageToWrite.createGraphics().drawImage(image, 0, 0, Color.WHITE, null);
+ BufferedImage bufferedImageToWrite = new BufferedImage(image.getWidth(), image.getHeight(), BufferedImage.TYPE_INT_ARGB);
+ bufferedImageToWrite.createGraphics().drawImage(image, 0, 0, this.backgroundColor, null);
final String formatName = FormatNameUtil.formatForFilename(file.getName());
try {
- if (!ImageIO.write(bufferedImageToWrite, formatName, file))
+ if (!ImageIO.write(bufferedImageToWrite, formatName, file)) {
throw new IOException("No formatter for specified file type [" + formatName + "] available");
+ }
} catch (IOException e) {
throw new RuntimeException(String.format("Exception while saving '%s' image", file), e);
}
@@ -155,6 +163,7 @@ public Dimension getDefaultSize() {
public BufferedImage getBufferedImage() {
JFrame frame = new JFrame();
+ frame.getRootPane().setOpaque(false);
frame.setPreferredSize(editorPane.getPreferredSize());
frame.setUndecorated(true);
frame.add(editorPane);
@@ -176,6 +185,7 @@ protected JEditorPane createJEditorPane() {
final JEditorPane editorPane = new JEditorPane();
editorPane.setSize(getDefaultSize());
editorPane.setEditable(false);
+ editorPane.setBackground(this.backgroundColor);
final SynchronousHTMLEditorKit kit = new SynchronousHTMLEditorKit();
editorPane.setEditorKitForContentType("text/html", kit);
editorPane.setContentType("text/html");