您的位置:

java的js截图,java截图代码

本文目录一览:

js 如何调整图片大小(调整宽或高、再截取其中部分),并后台java保存调整截取后的图片?

你说的这种最好用flash 实现,首先js截图不现实,好多浏览器都不行。

如果一定要用js的话,只能是先设置要截图的位置坐标,然后把要截取的位置信息坐标传给java,java后台根据位置坐标截取。我做的那个头像上传的差价都是用flash做的。

java截屏有哪几种方法

前台方式

1. 利用html2canvas实现前台截屏

html2canvas项目的gitHub地址

html2canvas示例

html2canvas可以将HTML代码块进行截取,并生成快照形式的canvas,然后可以利用html5的下载功能提供图片的下载接口,供用户下载。

优点:前台技术,实现比较容易。

缺点:此项目使用了html5的技术,因此在对IE的兼容上,只可以在IE9+的版本上使用。

使用时,需要引用jQuery.js和html2canvas.js。(html2canvas.js可以在github上下载)

具体JavaScript代码如下:

var canvas = function () {

html2canvas($("#chart"), {

onrendered: function (canvas) {

$("#class11").html(canvas);//将id为“class11”部分的代码转换为canvas

var type = 'png';//图片类型为png

var imgData = canvas.toDataURL('png');//将图片转换为png类型的流

var _fixType = function (type) {

type = type.toLowerCase().replace(/jpg/i, 'jpeg'); var r = type.match(/png|jpeg|bmp|gif/)[0]; return 'image/' + r;

}; var saveFile = function (data, filename) {

var save_link = document.createElementNS('', 'a');

save_link.href = data;

save_link.download = filename; var event = document.createEvent('MouseEvents');

event.initMouseEvent('click', true, false, window, 0, 0, 0, 0, 0, false, false, false, false, 0, null);

save_link.dispatchEvent(event);

}; //下载时的文件名

var filename = 'baidufe_' + (new Date()).getTime() + '.' + type; // 下载文件

saveFile(imgData, filename);

}

});

后台方式(java)

1. 利用html2image实现

html2image的地址(google)

html2image是可以识别html标签并将html转换成图片的java项目。

优点:后台转换,故对浏览器的版本基本没有要求。

缺点:对样式的识别不是很好,转换出来的图片比较简单,基本没有可以兼容的样式。

使用方式:maven中引用如下依赖:

dependency

groupIdcom.github.xuwei-k/groupId

artifactIdhtml2image/artifactId

version0.1.0/version/dependency12345

2. 利用DJNativeSwing项目实现

纯java代码实现。使用DJNativeSwing这个项目,构建一个swing浏览器,打开网址,之后截取图片。(需要eclipse的swt库支持)

优点:纯java实现。

缺点:需要多线程的支持,只在控制台方式实现过(由于本人对于多线程的掌握较弱,目前没有在spring项目中实现这个方法,求大神指导~~)

3. 利用phantomJs实现

phantomJs的GitHub地址

phantomJs官网

phantom利用的是webKit内核,全面支持web而不需浏览器支持,快速,原生支持各种Web标准。

优点:速度快,使用简单。

缺点:需要在项目的服务器端引用exe文件进行截图,并发性能有待考证。

如何以Java实现网页截图技术

1、最直接的方式——使用Robot

方法详解:该方法利用Robat提供的强大桌面操作能力,硬性调用浏览器打开指定网页,并将网页信息保存到本地。

优势:简单易用,不需要任何第三方插件。

缺点:不能同时处理大量数据,技术含量过低,属于应急型技巧。

实现方法:使用如下代码即可。

[java] view plaincopy

public static void main(String[] args) throws MalformedURLException,

IOException, URISyntaxException, AWTException {

//此方法仅适用于JdK1.6及以上版本

Desktop.getDesktop().browse(

new URL("google.com/intl/en/").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("google.jpg"));

}

2、最常规的方式——利用JNI,调用第三方C/C++组件

方法详解:目前来讲,Java领域对于网页截图组件的开发明显不足(商机?),当您需要完成此种操作时,算得上碰到了Java的软肋。但是,众所周知Java也拥有强大的JNI能力,可以轻易将C/C++开发的同类组件引为己用。

优势:实现简单,只需要封装对应的DLL文件,就可以让Java实现同类功能。

劣势:同其他JNI实现一样,在跨平台时存在隐患,而且您的程序将不再属于纯Java应用。

实现方法:可参见此用例,具体封装何种C/C++组件请自行选择。

PS:示例来源于ACA HTML to Image Converter项目(.acasystems.com/en/web-thumb-activex/faq-convert-html-to-image-in-java.htm ),这是一个收费的HTML转Image第三方组件,但封装方式在Java中大同小异。

引用JNI封装:

[java] view plaincopy

import sun.awt.*;

import java.awt.*;

import javax.swing.*;

import java.awt.event.*;

import java.awt.*;

import java.awt.peer.*;

public class Snap

{

static

{

System.loadLibrary("Snap");

}

public static void main( String[] argv )

{

Snap t_xSnap = new Snap();

t_xSnap.Start("google.com", "snapshot-google.png");

}

public native void Start(String pi_strURL, String pi_strImageName);

}

CPP部分的实现:

[java] view plaincopy

#include windows.h

#include atlbase.h

#include "snap.h"

#pragma comment(lib,"atl.lib")

#import "./../../acawebthumb.dll" no_namespace

JNIEXPORT void JNICALL Java_Snap_Start(JNIEnv *pEnv, jobject, jstring pi_strUrl, jstring pi_strFileName)

{

CoInitialize(0);

_bstr_t t_strUrl = pEnv-GetStringUTFChars(pi_strUrl, 0);

_bstr_t t_strFileName = pEnv-GetStringUTFChars(pi_strFileName, 0);

IThumbMakerPtr HTML_Converter = NULL;

HRESULT hr = HTML_Converter.CreateInstance(L"ACAWebThumb.ThumbMaker");

if (SUCCEEDED(hr))

{

HTML_Converter-SetURL(t_strUrl);

if ( 0 == HTML_Converter-StartSnap() )

HTML_Converter-SaveImage(t_strFileName);

}

if (HTML_Converter)

HTML_Converter.Release();

CoUninitialize();

}

java的js截图,java截图代码

2022-11-24
java截图,JAVA截图周围暗中间亮是如何实现的

2022-12-01
java截图,Java截图使用Chromeheadless控

2022-11-26
网页端截图js(网页版如何截图)

本文目录一览: 1、如何用 js 做网站截图 2、怎么使用node.js进行快速截图 3、javascript 网页截图 保存为本地图片 4、如何用nodejs去做网页截图 5、js能够实现截图吗 如

2023-12-08
java截屏,java截屏开源

2023-01-08
重学java笔记,java笔记总结

2022-11-23
网页截图js(网页截图截长图)

本文目录一览: 1、如何用nodejs去做网页截图 2、怎么使用node.js进行快速截图 3、如何用 js 做网站截图 如何用nodejs去做网页截图 很多情况下,我们都需要在电脑上做一些截图的操作

2023-12-08
java截屏,java截屏如何把鼠标箭头截进去

2023-01-08
java拦截器,java拦截器和过滤器的区别

2023-01-07
js代码总结体会,js基础知识总结笔记

本文目录一览: 1、js到底难不难学? 2、JS 代码 求解释 可以详细的 说明一下 谢谢 3、浅谈js写轮播图的思路与心得 4、JavaScript与WEB前台开发课程实训总结怎么写 5、js中继承

2023-12-08
印象笔记记录java学习(Java成长笔记)

2022-11-12
java代码提取视频中的图片,java怎么导入图片的代码

2022-11-19
java图片验证码,java图片验证码代码

2023-01-04
以list截取为中心的Java代码实现

2023-05-11
使用html2canvas进行网页截图:解决无法全屏截图的问

2023-05-19
图片验证码java,图片验证码是什么

2022-12-01
随意画等功能的java画图程序,根据java代码画类图

2022-11-18
java爬取新浪趣图,java爬图片

2022-11-24
拦截器java,spring拦截器

2022-11-26
Java List 截取方法

2023-05-10