其实截图的知识也不难
额(⊙o⊙)…
下面那个代码写辣么辣么长是俺的错
(时隔一年我回来看一眼,忍不住道当年哪个傻B写的傻B玩意儿……心酸心累心惆怅)
为了表达歉意
我特定重新写了一个放在最最最后面
截图主要用到ImageIO【保存成文件】、BufferedImage【临时存储】、Robot【截取】等知识
具体怎么操作我在最最最最后面那个代码里面有注解
实例代码:
import java.awt.*;
import java.io.File;
import java.io.IOException;
import java.util.Date;
import java.text.SimpleDateFormat;
import java.awt.image.BufferedImage;
import javax.imageio.ImageIO;
public class ScreenCapture {
private String saveDir; //存放图片的路径
private String name; //包括后缀的图片全称
private String imageFormat; //图片存储格式,即后缀
private String imageName; //图片的名字,不包括后缀
private Dimension screen; //屏幕
private Rectangle screenRectangle; //矩形框
public ScreenCapture() {
saveDir = "D:\\image";
screen = Toolkit.getDefaultToolkit().getScreenSize();
screenRectangle = new Rectangle(screen);
imageFormat = "png";
}
public void captureScreen() {
SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMddHHmmss");
imageName = sdf.format(new Date()); //默认名字
name = imageName + "." + imageFormat;
File imageDir = new File(saveDir);
if (!imageDir.exists()) { //如果路径不存在,则创建
imageDir.mkdirs();
}
//截屏
BufferedImage image = null;
try {
Robot robot = new Robot(); //记得抛异常
image = robot.createScreenCapture(screenRectangle);
} catch (AWTException e) {
e.printStackTrace();
}
try {
ImageIO.write(image, imageFormat, new File(imageDir, name));
} catch (IOException e) {
e.printStackTrace();
}
}
public void captureScreen(String imageName) {
this.imageName = imageName;
name = imageName + "." + imageFormat;
File imageDir = new File(saveDir);
if (!imageDir.exists()) { //如果路径不存在,则创建
imageDir.mkdirs();
}
//截屏
BufferedImage image = null;
try {
Robot robot = new Robot(); //记得抛异常
image = robot.createScreenCapture(screenRectangle); //获取指定的图片
} catch (AWTException e) {
e.printStackTrace();
}
try {
ImageIO.write(image, imageFormat, new File(imageDir, name));
} catch (IOException e) {
e.printStackTrace();
}
}
public String getSaveDir() {
return saveDir;
}
public void setSaveDir(String saveDir) {
this.saveDir = saveDir;
}
public String getImageFormat() {
return imageFormat;
}
public void setImageFormat(String imageFormat) {
this.imageFormat = imageFormat;
}
public String getImageName() {
return imageName;
}
//测试
public static void main(String[] args) {
ScreenCapture screen = new ScreenCapture();
screen.captureScreen();
screen.setSaveDir("D:\\image");
screen.setImageFormat("jpg");
screen.captureScreen("我是白痴");
}
}
++++++++++++++++++++++++++++++++++++++++++++++++++++
这里是2018.03.16时候推出的爱心代码
方便初学者参考[帅]
import java.awt.*;
import java.awt.image.*;
import java.io.*;
import javax.imageio.*;
public class Main {
public static void main(String[] args) throws AWTException, IOException {
Dimension screen = null; //电脑屏幕大小
Rectangle screenRect = null;//截图的宽高
String imageName = "我是白痴"; //图片的名称
String imageFormat = "png"; //图片的格式,即后缀
String saveDir = "C:/"; //图片存放的路径
BufferedImage image = null; //暂存图片的缓存
Robot robot = null; //负责截屏的操作者
screen = Toolkit.getDefaultToolkit().getScreenSize();
screenRect = new Rectangle(screen);
robot = new Robot(); //抛出AWTException
image = robot.createScreenCapture(screenRect); //将得到的屏幕信息存放在缓存里面
//将缓存里面的屏幕信息以图片的格式存在制定的磁盘位置
ImageIO.write(image, imageFormat, new File(saveDir, imageName + "." + imageFormat)); //抛出IOException
}
}