bl双性强迫侵犯h_国产在线观看人成激情视频_蜜芽188_被诱拐的少孩全彩啪啪漫画

java實現截屏功能代碼 javaoffer截圖

java 實現截屏!

主要是利用java的幾個先有的函數,如Robot這個類的一個方法createScreenCapture一個獲得一個任意大小的屏幕圖像(在這里是全屏圖像),而所謂的截圖就是在這個圖像上畫出一個矩形,再利用上面的方法獲得這部分的圖像,程序中的cf.setAlwaysOnTop(true)是必需的;看起來是在屏幕上截圖,其實只是在一個在一個內鑲有桌面背景的JFrame中截圖。不知道還有沒有其他的好方法~

為舒蘭等地區用戶提供了全套網頁設計制作服務,及舒蘭網站建設行業解決方案。主營業務為成都網站設計、成都做網站、舒蘭網站設計,以傳統方式定制建設網站,并提供域名空間備案等一條龍服務,秉承以專業、用心的態度為用戶提供真誠的服務。我們深信只要達到每一位用戶的要求,就會得到認可,從而選擇與我們長期合作。這樣,我們也可以走得更遠!

附上代碼:

import java.awt.*;

import java.awt.image.*;

import java.awt.event.*;

import java.io.File;

import javax.imageio.ImageIO;

import javax.swing.*;

public class Camera {

/**

* @param args

*/

public static void main(String[] args) {

CameraJFrame cf=new CameraJFrame();

cf.setAlwaysOnTop(true);

cf.setUndecorated(true);

cf.setVisible(true);

}

}

class CameraJFrame extends JFrame

{

/**

*

*/

private static final long serialVersionUID = 1L;

Dimension di=Toolkit.getDefaultToolkit().getScreenSize();

public CameraJFrame()

{

setSize(di);

getContentPane().add(new CameraJPanel());

}

class CameraJPanel extends JPanel implements MouseListener,MouseMotionListener

{

/**

* flag主要是用來判別狀態。

* 文件的格式名是unname+數字編號,格式是png

*/

private static final long serialVersionUID = 1L;

BufferedImage bi,get;

int startx,starty,endx,endy;

int flag=1;

String filename="unname";

String fileformat="png";

int count=1;

public CameraJPanel()

{

try

{

Robot ro=new Robot();

bi=ro.createScreenCapture(new Rectangle(0,0,di.width,di.height));

}

catch(Exception e)

{

e.printStackTrace();

}

addMouseListener(this);

addMouseMotionListener(this);

}

public void paintComponent(Graphics g)

{

g.drawImage(bi,0,0,di.width,di.height,this);

g.setColor(Color.red);

g.drawRect(startx, starty, endx-startx, endy-starty);

}

public void mouseClicked(MouseEvent e) {

// TODO Auto-generated method stub

if(e.getButton()==MouseEvent.BUTTON3)

{

System.exit(0);

}

else if(e.getClickCount()==2)

{

try

{

Robot ro=new Robot();

get=ro.createScreenCapture(new Rectangle(startx,starty,endx-startx,endy-starty));

String name=filename+String.valueOf(count++)+"."+fileformat;

File f=new File(name);

ImageIO.write(get, fileformat, f);

}

catch(Exception ex)

{

ex.printStackTrace();

}

flag=1; //置flag為1,以便重新開始截圖。

startx=starty=endx=endy=0;

repaint();

}

}

public void mouseEntered(MouseEvent e) {}

public void mouseExited(MouseEvent e) {}

public void mousePressed(MouseEvent e) {

if(flag==1)

{

startx=e.getX();

starty=e.getY();

}

}

public void mouseReleased(MouseEvent e) {

flag=0;

}

public void mouseDragged(MouseEvent e) {

flag=1;

endx=e.getX();

endy=e.getY();

repaint();

}

public void mouseMoved(MouseEvent e) {}

}

}

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實現網頁截圖技術

事實上,如果您想以Java實現網頁截圖,也就是“輸入一段網址,幾秒鐘過后就能截取一張網頁縮略圖”的效果。那么,您至少有3種方式可以選擇。

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

方法詳解:該方法利用Robat提供的強大桌面操作能力,硬性調用瀏覽器打開指定網頁,并將網頁信息保存到本地。

優勢:簡單易用,不需要任何第三方插件。

缺點:不能同時處理大量數據,技術含量過低,屬于應急型技巧。

實現方法:使用如下代碼即可。

[java] view plaincopy

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

IOException, URISyntaxException, AWTException {

//此方法僅適用于JdK1.6及以上版本

Desktop.getDesktop().browse(

new URL("").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應用。

分享文章:java實現截屏功能代碼 javaoffer截圖
文章網址:http://vcdvsql.cn/article32/doisosc.html

成都網站建設公司_創新互聯,為您提供網站建設網站設計公司網站內鏈Google定制網站

廣告

聲明:本網站發布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創新互聯

外貿網站建設