博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
java实现屏幕截屏功能
阅读量:6863 次
发布时间:2019-06-26

本文共 2655 字,大约阅读时间需要 8 分钟。

  最近在项目中遇到这样一个需求,用户生成推广海报想要发送给朋友,但是推广海报是用html网页写的,这时候想要分享给朋友的话只能用户自己手机截图,显然这样的用户体验是不友好的,如果可以给用户一个按钮实现一键截图的功能,那么便极大地方便了用户,有可能就是因为省了这一步而使得推广的效果变得更好。下面就讲一下如何使用java实现屏幕截屏的功能。

第一步:创建截屏工具类

import java.awt.AWTException;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 java.io.IOException;import javax.imageio.ImageIO;/** * 截屏工具类 * @author zhangdi * */public class CutPicUtil {    /**     * 屏幕截图     * @param imageName 存储图片名称     * @param path 图片路径     * @param imgType 图片类型     * @throws AWTException     * @throws IOException     */    public static void cutPic(String imageName,String path,String imgType) throws AWTException, IOException{        Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize();            Rectangle screenRectangle = new Rectangle(screenSize);            Robot robot = new Robot();            BufferedImage image = robot.createScreenCapture(screenRectangle);            ImageIO.write(image,imgType, new File(path+imageName+"."+imgType));     }    }

第二步:在服务层调用截图工具类

@Override    public Map
ScreenshotImg(String imageName, String basePath,String path, String imgType) { Map
map = new HashMap
(); boolean flag = true; String name = DateUtil.getNowDate(6)+RandomUtil.getRandomString(8); try { CutPicUtil.cutPic(name, basePath+path,imgType); } catch (AWTException e) { // TODO Auto-generated catch block e.printStackTrace(); flag = false; } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); flag = false; } if(flag){ map.put("state","0");//截屏成功 map.put("path",path+name+"."+imgType); }else{ map.put("state","1");//截屏失败 } return map; }

第三步:在控制层提供接口

/**     * 屏幕截图     * @return     */    @RequestMapping(value="cutPic" ,method=RequestMethod.POST)    @ResponseBody    public Map
cutPic(HttpServletRequest request){ String imageName = DateUtil.getNowDate(6)+RandomUtil.getRandomString(6); String basePath = request.getRealPath("/"); String path = "/static/img/Screenshotimg/"; return iManageService.ScreenshotImg(imageName,basePath,path, "jpg"); }

第四步:前台页面调用接口(这里使用原生js调用)

效果:点击截屏提示截屏成功并展示出来

 

 注意:我这里是跟springMVC结合使用的,其实核心代码是截图工具类,大家可以选择性的使用。

posted on
2017-12-28 11:40 阅读(
...) 评论(
...)

转载于:https://www.cnblogs.com/zhangdiIT/p/8134886.html

你可能感兴趣的文章