要求是 比如 页面之中的标签<div>内容 生成一张图片。生成的图片和整个页面那部分显示的一样。上网查过用html2canvas类库可以做得到,但是网上资料很少,官网看不太懂,哪位大神研究过,来个java实例代码,指导下小弟。如果不用这个和flash,请指教用何种方式也可以实现(java实现)?谢谢了
------解决方案--------------------------------------------------------
之前的一个打开某站点,并截图的例子,可能与楼主的需求差不多。粘出来供参考,楼主可适当修改。
- Java code
import java.awt.Desktop;import java.awt.Dimension;import java.awt.Graphics;import java.awt.Image;import java.awt.Rectangle;import java.awt.Robot;import java.awt.Toolkit;import java.awt.event.KeyEvent;import java.awt.image.BufferedImage;import java.io.BufferedReader;import java.io.File;import java.io.FileReader;import java.net.URL;import javax.imageio.ImageIO;public class Test { public static void main(String[] args) throws Exception { Desktop.getDesktop().browse(new URL("http://www.baidu.com").toURI());//打开百度首页 Robot robot = new Robot(); robot.delay(10000); Dimension d = new Dimension(Toolkit.getDefaultToolkit().getScreenSize()); int width = (int) d.getWidth(); int height = (int) d.getHeight(); robot.keyRelease(KeyEvent.VK_F11); robot.delay(2000); Image image = robot.createScreenCapture(new Rectangle(0, 0, width,height)); BufferedImage bi = new BufferedImage(width, height,BufferedImage.TYPE_INT_RGB); Graphics g = bi.createGraphics(); g.drawImage(image, 0, 0, width, height, null); ImageIO.write(bi, "jpg", new File("d://baidu.jpg"));//保存图片 }}
------解决方案--------------------------------------------------------
页面中引用jquery.js和html2canvas.js
执行javascript脚本: $('div')2canvas();