java webengine_如何以Java实现网页截图技术
展开全部
使用JavaFX8(JDK8打包在一起)
public void start(Stage primaryStage) throws Exception {
final WebView view = new WebView();
Scene scene = new Scene(view, 310, 310);
primaryStage.setScene(scene);
final WebEngine webEngine = view.getEngine();
webEngine.load(this.getClass().getResource("web/index.html")
.toExternalForm());
primaryStage.show();
// 方式1. 监听webEngine加载进度,可能页面加载不完整
webEngine.getLoadWorker().stateProperty()
.addListener(new ChangeListener() {
@Override
public void changed(ObservableValue extends State> ov,
State oldState, State newState) {
if (newState == State.SUCCEEDED) {
snapshot(view);
}
}
});
// 方式2. 使用Transition设定延时62616964757a686964616fe59b9ee7ad9431333337613834
PauseTransition ptr = new PauseTransition(Duration.seconds(3));
ptr.setOnFinished(new EventHandler() {
@Override
public void handle(ActionEvent event) {
snapshot(view);
}
});
ptr.play();
//方式3. 使用Task设定延时
Task task = new Task() {
@Override
protected String call() throws Exception {
Thread.sleep(5000);
return null;
}
};
task.setOnSucceeded(new EventHandler() {
@Override
public void handle(WorkerStateEvent event) {
snapshot(view);
}
});
new Thread(task).start();
// 方式4. 自己实现多线程调用,较麻烦
new Thread(){
public void run() {
try {
Thread.sleep(7000);//该命令不可直接在Fx用户线程执行,否则会导致前台的渲染线程暂停,页面不会被加载
Platform.runLater(new Runnable() {
@Override
public void run() {
snapshot(view);//在后台线程中不可以直接操作UI,需要借助runLater
}
});
} catch (InterruptedException e) {
e.printStackTrace();
}
};
}.start();
}
public void snapshot(Node view) {
Image image = view.snapshot(null, null);
try {
ImageIO.write(SwingFXUtils.fromFXImage(image, null), "png",
new File("f:\\" + System.currentTimeMillis() + ".png"));
} catch (IOException e) {
e.printStackTrace();
}
}
java webengine_如何以Java实现网页截图技术相关推荐
- java web 截图_如何以Java实现网页截图技术
今天看到某网友关于"如何以Java实现网页截图技术"的咨询帖,由于出现该咨询的地点非常不适合较长回复,故以博文形式回答. 事实上,如果您想以Java实现网页截图,也就是" ...
- 如何以Java实现网页截图技术
今天看到某网友关于"如何以Java实现网页截图技术"的咨询帖,由于出现该咨询的地点非常不适合较长回复,故以博文形式回答. 事实上,如果您想以Java实现网页截图,也就是" ...
- IE网页截图技术笔记
网页截图技术似乎并不是很复杂,网上有很多实例,但是真的想搞清楚的话,还是有很多细节需要注意的.下面是我个人一些经验总结. 有3个技术方案,可以实现IE截图 这篇博客(http://blog.csdn. ...
- [IE编程] IE网页截图技术总结
IE网页截图是IE编程中的经典问题. IE9 beta发布之后我收到很多关于这方面的问题. 最近我把IE和Windows中这部分相关的代码重新架构了一下,使它们能够在IE9开启硬件加速的情况下完美兼容 ...
- 如何以Java实现网页截图技术,根据URL得到网页快照
// 此方法仅适用于JdK1.6及以上版本 Desktop.getDesktop().browse( new URL("http://www.csdn.net/").toURI() ...
- 使用PhantomJS实现网页截图服务
使用PhantomJS实现网页截图服务 2015-12-12来源:Java教程人气:99 这是上半年遇到的一个小需求,想实现网页的抓取,并保存为图片.研究了不少工具,效果都不理想,不是显示太差了(Ca ...
- 网页截图和svg模版动态生成图片Java实现
网页截图和svg模版动态生成图片Java实现 使用场景 需要Java语言动态生成图片 用流程图简单说明下我这边工作中使用的场景 仅供参考 所以这里就需要生成证书了 我先给大家看下最终实现的图片效果 这 ...
- Java phantomjs 网页截图
简介 根据传入的url对网页进行截图.打开网页和截取图片通过软件phantomjs.exe在后台静默完成.注:该过程不需要打开浏览器 优点: 1.该软件支持多个平台,包括Linux,Windows. ...
- java网页截图_java-selenium 实现网页截图
使用firefox浏览器无头模式在内存里渲染页面,然后用selenium操作浏览器并解析截图.需要安装firefox(也支持chrome),然后下载firefox 驱动 详见:https://gith ...
最新文章
- 浅谈ASP.NET的内部机制(一)
- 4 angular 重构 项目_vuejs angularjs 框架的一些比较(vue项目重构四)
- 干货分享:插画家Anmi的创作技巧与练习方法
- centos6.4下安装配置JDK+TOMCAT+MYSQL笔记
- Python程序可打印今天的年,月和日
- 转载】JQuery中如何传递参数如click(),change()等具体实现
- 利用汇编挖掘编程语言的本质
- excel 相邻数计算机,Excel计算公式大全.doc
- android学习-1
- nextpolish安装_希望组自主三代组装软件NextDenovo最新版本全球学术开源!
- leetcode刷题日记-课程表 III
- Linux下的防火墙
- C# 获取PDF文档的字体信息及指定文字的坐标,宽度和高度
- 3DMAX渲染了很久还是黑的或有部分黑​屏?
- 命令行查看ubuntu版本号
- 别去赌场了,你永远赢不了“凯利公式”
- 记录一下mac mini 2018 的折腾过程
- eclipse hadoop1.2.0配置及wordcount运行
- deepin 安装显卡后,可支持双屏展示
- .net windows service开发与安装
热门文章
- Hive的索引操作【小结】
- 为什么需要MapReduce?
- 将 a.txt 文件中的单词与 b.txt 文件中的单词交替合并到 c.txt 文件 中
- 430. Flatten a Multilevel Doubly Linked List | 430. 扁平化多级双向链表(DFS)
- 【GitHub教程】如何使用Eclipse将本地项目上传到github
- C#实验报告 类与对象的访问性:银行账户存取款、新建账户、查询余额
- 密码学系列之:碰撞抵御和碰撞攻击collision attack
- lazada发货_Lazada怎么发货?最全Lazada发货流程及注意事项!值得收藏!
- zoj 3761 Easy billiards 并查集+dfs
- 可迭代协议与for-of循环