Java如何实现截图功能?有没有这方面开源的东东?

问题描述

最近项目中涉及到一个问题:需要将已经画好的图形存储起来(注:利用其它的画图工具绘制),然后进行发送,在异地查看。目前的一个思路是:希望将用画图工具绘制的图形采用截图的方式保存为图片格式,然后直接发送过去。由于绘制的图形是符合工业规范的图形,只能利用已有的工具进行绘制,还不能使用Java再造一个轮子。所以最直接的方式就是希望利用Java做一个截图的功能,进行截图。寻求好的开源的Java的能实现截图的工具。或者Java支持截图的包什么的....

解决方案

可以进行截图的,你看看这个例子import java.awt.Dimension;import java.awt.Rectangle;import java.awt.Robot;import java.awt.Toolkit;import java.awt.image.BufferedImage;import java.io.File;import javax.imageio.ImageIO;/******************************************************************************** 该JavaBean可以直接在其他Java应用程序中调用,实现屏幕的"拍照" This JavaBean is used to snapshot the* GUI in a Java application! You can embeded it in to your java application* source code, and us it to snapshot the right GUI of the application** @see javax.ImageIO* @author liluqun ([email]liluqun@263.net[/email])* @version 1.0*******************************************************************************/public class GuiCamera { private String fileName; // 文件的前缀 private String defaultName = "GuiCamera"; static int serialNum = 0; private String imageFormat; // 图像文件的格式 private String defaultImageFormat = "jpg"; Dimension d = Toolkit.getDefaultToolkit().getScreenSize(); /*************************************************************************** * 默认的文件前缀为GuiCamera,文件格式为PNG格式 The default construct will use the default * Image file surname "GuiCamera", and default image format "png" **************************************************************************/ public GuiCamera() { fileName = defaultName; imageFormat = defaultImageFormat; } /*************************************************************************** * @param s * the surname of the snapshot file * @param format * the format of the image file, it can be "jpg" or "png" * 本构造支持JPG和PNG文件的存储 **************************************************************************/ public GuiCamera(String s, String format) { fileName = s; imageFormat = format; } /*************************************************************************** * 对屏幕进行拍照 snapShot the Gui once **************************************************************************/ public void snapShot() { try { // 拷贝屏幕到一个BufferedImage对象screenshot BufferedImage screenshot = (new Robot()) .createScreenCapture(new Rectangle(0, 0, (int) d.getWidth(), (int) d.getHeight())); serialNum++; // 根据文件前缀变量和文件格式变量,自动生成文件名 String name = fileName + String.valueOf(serialNum) + "." + imageFormat; File f = new File(name); System.out.print("Save File " + name); // 将screenshot对象写入图像文件 ImageIO.write(screenshot, imageFormat, f); System.out.print("..Finished!n"); } catch (Exception ex) { System.out.println(ex); } } public static void main(String[] args) { GuiCamera cam = new GuiCamera("d:\qq", "bmp");// cam.snapShot(); }}

时间: 2024-10-01 23:32:34

Java如何实现截图功能?有没有这方面开源的东东?的相关文章

java代码实现截图功能(屏幕截图)_java

复制代码 代码如下: import java.awt.Dimension;import java.awt.Rectangle;import java.awt.Robot;import java.awt.Toolkit;import java.awt.image.BufferedImage;import java.io.File; import javax.imageio.ImageIO; /*****************************************************

各位大侠,谁用过139邮箱发邮件时的截图功能?用java该怎样实现?

问题描述 各位:不知道有没有人用过139邮箱发邮件时有一个截图功能,可以先选择要截图的窗口,然后再进行截图,截完图以后可以自动添加成附件,请问这样的功能谁有实现过?在java中该如何实现这样的功能? 解决方案 解决方案二:我去看看去...我旁边的MM正在测试解决方案三:1楼的兄弟说的是真的吗?如果是真的,那可太感谢了!!!解决方案四:该回复于2011-01-05 09:03:52被版主删除解决方案五:细细发现,一楼的大哥原来是高手中的高手,希望能帮小弟度过这个难关,小弟将不胜感激!!!谢谢!!!

Java模拟QQ桌面截图功能实现方法_java

本文实例讲述了Java模拟QQ桌面截图功能实现方法.分享给大家供大家参考.具体如下: QQ的桌面截图功能非常方便,去年曾用Java模拟过一个,现整理出来. 本方法首先需要抓到屏幕的整个图象,将图象显示在一个JFrame中,再将JFrame全屏显示,这样就模拟出了一个桌面,Java也就可以获得鼠标的作用区域从而实现桌面中的小范围截屏. import javax.swing.*; import java.awt.*; import java.awt.event.ActionEvent; import

VBS实现截图功能_vbs

百度说,VBS很难截图,倒是有个利用第三方软件的方法,调用该软件,然后该软件会自动截图. 但这样,违背了用VBS的初衷. 用VBS就是因为它方便快捷.要是用第三方软件的话,干脆我们直接用VB写一个好了. 那么...只好调用Excel用VBA去做了. 有什么更好的方法吗? 在度娘上翻了很久,没有什么好方法,因为实现截屏原本就不是微软设计vbs的初衷,更多的扩展功能是使用者的意愿,所以才会有第三方的出现,实际vbs调用vba也是这种方式,利用的是vba能调用API的特性,查了下网上的代码,调用的是U

win7系统如何使用360极速浏览器截图功能

  win7系统如何使用360极速浏览器截图功能.本文小编分享win7系统如何使用360极速浏览器截图?现在截图的方法有很多种,比如:QQ截图,按Print等等,大家肯定还不知道360极速浏览器也有截图功能,那么win7系统如何使用360极速浏览器截图功能,截图之后的图片又保存在哪里呢?接下去小编和大家分享win7系统使用360极速浏览器截图功能的方法. 解决步骤: 1.在360极速浏览器右上角点击"四色方格"的图标,打开"扩展中心"; 2.在右侧的搜索框中输入&q

java 后台实现打印功能

问题描述 java 后台实现打印功能 请问,java 后台怎么实现打印功能?求解 有现成代码的帖出来看看 谢谢了 解决方案 System.out.println就行了,, 解决方案二: 用JAVA实现打印功能用java实现打印功能用java实现打印功能 解决方案三: http://www.ibm.com/developerworks/cn/java/l-javaprint/ 解决方案四: 你说的打印功能是什么意思呢?调用打印机打印,还是就是Eclipse你的控制台打印日志信息呢?后者的话直接我们

C#模仿QQ截图功能

前阵子改了段C#截图功能的代码,现贴上来希望对大家有用 主文件 CaptureScreenForm.cs using System;using System.Drawing;using System.Collections;using System.ComponentModel;using System.Windows.Forms;using System.Data;using System.Runtime.InteropServices; namespace CaptureScreen{ //

留住永恒的画面 暴风影音截图功能体验

说到媒体播放器的截图功能,相信很多朋友都会说,这个功能太常用了.每当看到有什么精彩的画面想和朋友们分享的时候,或者是自己DIY一些图片.海报或者搞笑图片的时候,截图功能是绝对的利器.但由于大多数用户对视频播放的内部流程和基本知识比较陌生,加上第三方屏幕截图工具的流行,会有部分用户不习惯直接用播放器进行截图.其实这是一种本末倒置的行为--无论从截图区域的精确性还是从截取图像的精细度来看,都是播放器本身对播放内容进行截图的效果最好. 下面,笔者就以目前最流行也是最多人使用的老牌播放器暴风影音为例,来

“截”出精彩-简单实用的Lava截图功能

Lava-Lava的截图功能一直是网友们所津津乐道的,不仅操作方便,而且还相当实用,特别是它的高级截屏功能,让你在截图后无须再打开图片处理软件,就可以直接编辑,加框或者标注等. 有了Lava-Lava,我们就可以随时随地的截图发给好友,比如看到网页上的一个美图,或者一个超级长而复杂的网页链接,甚至是视频时候的对方形象或者我的自拍照.而且,在写Word文档的时候,如果我们需要截图的话,可以直接用Lava-Lava的截图复制粘贴到Word文档里面,好省力吧!下面就跟随我一步一步了解lava-lava