程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> JAVA編程 >> 關於JAVA >> java html轉圖片,並設置透明背景實現代碼

java html轉圖片,並設置透明背景實現代碼

編輯:關於JAVA
 

在谷歌上可以找到的java庫html2image,直接可將html內容轉為image保存起來
http://java-html2image.googlecode.com/files/html2image-0.9.jar
簡單的例子如下
import gui.ava.html.image.generator.HtmlImageGenerator;

public class txt2img {

public static void main(String[] args) throws Exception {
String text = args[0];
String filename = args[1];

HtmlImageGenerator imageGenerator = new HtmlImageGenerator();
imageGenerator.loadHtml(text);
imageGenerator.getBufferedImage();
imageGenerator.saveAsImage(filename);
}
}

不過生成圖片後發現,圖片背景是白色的,但我只需要內容,要透明的背景。
查了文檔,沒有說到這個庫能設置背景的,網上進行搜索也沒有相關內容,於是只好找來源碼自己研究。
發現其中類HtmlImageGenerator使用了JEditorPane來處理html,嘿嘿,通過查找JEditorPane的資料可以修改背景。
修改類HtmlImageGenerator中的createJEditorPane函數,如下
protected JEditorPane createJEditorPane() {
final JEditorPane editorPane = new JEditorPane();
editorPane.setBackground(new Color(0,0,0,0));//設置背景透明
editorPane.setSize(getDefaultSize());
editorPane.setEditable(false);
final SynchronousHTMLEditorKit kit = new SynchronousHTMLEditorKit();
editorPane.setEditorKitForContentType("text/html", kit);
editorPane.setContentType("text/html");
editorPane.addPropertyChangeListener(new PropertyChangeListener() {
public void propertyChange(PropertyChangeEvent evt) {
if (evt.getPropertyName().equals("page")) {
onDocumentLoad();
}
}
});
return editorPane;
}

改後再重新編譯成jar包。
重新執行程序,就得到想要的透明背景圖片了。

 
  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved