目录

目标

概述

代码

根据坐标截图

截图效果

识别图片上的文字

相关依赖与工具类

识别效果


目标

  1. 根据给定的坐标,在屏幕上截图并保存到指定的目录下;
  2. 识别图片中的文字。

概述

  1. 利用JDK自带的方法实现截图功能;
  2. 利用百度SDK实现文字识别功能。

代码

根据坐标截图

package com.ctx.utils;import javax.imageio.ImageIO;
import java.awt.*;
import java.awt.image.BufferedImage;
import java.io.File;
import java.io.IOException;/*** @describe 截图工具类*/
public class Img {//图片存放目录public static final String BUFFER_IMAGE_AREA="C:\\Users\\Administrator\\Desktop\\sw_image\\";public static void main(String[] args) throws IOException, AWTException {//{左上角的横坐标,左上角的纵坐标,右下角的横坐标,右下角的纵坐标}int[] area={0,0,200,200};createScreen(area,"test.png");}/**** @param area 截图区域,即给定的截图范围:{左上角的横坐标,左上角的纵坐标,右下角的横坐标,右下角的纵坐标}* @param imageName 给截取的图片命名* @return* @throws AWTException* @throws IOException*/public static String createScreen(int[] area,String imageName)throws AWTException, IOException {Dimension screen = null;    //电脑屏幕大小Rectangle screenRect = null;//截图的宽高BufferedImage image = null; //暂存图片的缓存Robot robot = null;         //负责截屏的操作者screen = Toolkit.getDefaultToolkit().getScreenSize();//截图尺寸screen.height=area[3]-area[1];screen.width=area[2]-area[0];screenRect = new Rectangle(screen);//左上角得坐标screenRect.x=area[0];screenRect.y=area[1];robot = new Robot();//将得到的屏幕信息存放在缓存里面image = robot.createScreenCapture(screenRect);//将缓存里面的屏幕信息以图片的格式存在制定的磁盘位置ImageIO.write(image, getFileSuffix(imageName), new File(BUFFER_IMAGE_AREA, imageName));return BUFFER_IMAGE_AREA+imageName;}public static String getFileSuffix(String path){String[] split = path.split("\\.");return split[split.length-1];}
}

截图效果


识别图片上的文字

相关依赖与工具类

        <dependency><groupId>com.baidu.aip</groupId><artifactId>java-sdk</artifactId><version>4.8.0</version></dependency>
package com.ctx.utils;import com.baidu.aip.ocr.AipOcr;
import org.json.JSONArray;
import org.json.JSONObject;import java.awt.*;
import java.io.IOException;
import java.util.HashMap;/*** @describe 识别图片上的文字* 官方文档:https://ai.baidu.com/ai-doc/OCR/Ikibizxql*/
public class Word {// 设置APPID/AK/SKpublic static final String appId = "你的 App ID";public static final String apiKey = "你的 Api Key";public static final String secretKey = "你的 Api Key";public static final AipOcr client = new AipOcr(appId, apiKey, secretKey);/** 文字识别方法*/public static String imgOcr(String imgpath){// 传入可选参数调用接口HashMap<String, String> options = new HashMap<String, String>();options.put("language_type", "CHN_ENG");options.put("detect_direction", "true");options.put("detect_language", "true");options.put("probability", "true");// 参数为本地路径JSONObject res = client.basicGeneral(imgpath, options);//解析jsonJSONArray wordsResult = (JSONArray)res.get("words_result");String ocrStr = "\n";StringBuffer sb=new StringBuffer();for(Object obj : wordsResult){JSONObject jo = (JSONObject)obj;sb.append(jo.getString("words") + "\n");}return sb.toString();}public static void main(String[] args) throws AWTException, IOException {String s = Word.imgOcr("C:\\Users\\Administrator\\Desktop\\sw_image\\a.png");System.out.println(s);}
}

识别效果

java截取屏幕指定范围内的图片并识别图片内的文字相关推荐

  1. java 屏幕识别_Java课程设计:捕获图片以及识别图中的文字

    package屏幕捕捉以及识别;importjava.awt.Color;importjava.awt.FlowLayout;import java.awt.event.*;importjava.aw ...

  2. 截取屏幕指定区域保存为BMP文件

    HBITMAP CopyScreenToBitmap(LPRECT lpRect) { //屏幕和内存设备描述表 HDC hSrcDC, hMemDC; //位图句柄 HBITMAP hBitmap, ...

  3. python实现自适应分辨率截取桌面图片并识别图片文字

    1.先获取桌面中间截图或者txt文本窗口截图 2.对截图进行二值化处理,再进行图像识别,识别其中的文字 不多说,上代码: from PIL import Image from PyQt5.QtWidg ...

  4. php 图片 字母识别,php实现ocr文字识别

    OCR的百度定义 (Optical Character Recognition,光学字符识别)是指电子设备(例如扫描仪或数码相机)检查纸上打印的字符,通过检测暗.亮的模式确定其形状,然后用字符识别方法 ...

  5. Python提取word文档中的图片,识别图片文字之后再转存为word文档

    #!/usr/bin/env python # coding: utf-8 import zipfile #压缩包 import os #文件库 import shutil import pytess ...

  6. 批量识别图片文字并存为Excel,几行Python轻松实现!

    今天给大家分享批量识别图片的方法. 一.背景 也许你还记得,前不久复旦大学一博士生写了130行Python代码,批量识别核酸截图内容的故事.当时还被人民日报公众号报道出来,夸赞用所学贡献青春力量! 其 ...

  7. Python自动化办公:批量识别图片文字并存为Excel

    来源:菜J学Python 一.背景 也许你还记得,前不久复旦大学一博士生写了130行Python代码,批量识别核酸截图内容的故事.当时还被人民日报公众号报道出来,夸赞用所学贡献青春力量! 其实,批量文 ...

  8. java截取固定大小图片_JAVA技巧(长字符串按指定长度截取)

    在web开发中,会遇到这样一个问题,想让某个内容全部保持在一定长度范围内,未超出的行全部显示,超长的行只允许显示一定的长度,结尾用省略号代替. 粗想一下,实现这个功能很容易,直接取字符串的长度(用le ...

  9. java截取图片-设置方位+设置大小

    java截取图片-设置方位+设置大小 package com.onegrid.darj.test; import java.awt.Rectangle;   import java.awt.image ...

最新文章

  1. 90后清华女孩:博二开始研究世界级难题,3年发5篇Science,现入选中国榜“35岁以下科技创新35人”!...
  2. SAP MM 移动平均价的商品发票价格和采购订单价格差异的处理
  3. scrapy中的request对象
  4. 桌面计算机打开不了怎么办,电脑桌面上的所有东西都打不开了 怎么处理
  5. DotNetty 实现 Modbus TCP 系列 (三) Codecs Handler
  6. 复述-软考高级-网规-数据灾备
  7. VMware vCenter Server 的内部版本号和版本 (2143838)--2020-10-27 更新
  8. 神经网络之BP算法(图说神经网络+BP算法理论推导+例子运用+代码)
  9. 简易版牛奶布丁的做法 没烤箱照样做布丁
  10. qt自定义控件-水波纹进度条
  11. Unity 3D模型展示之模型高亮
  12. 一文搞懂css 2D动画效果
  13. python脚本编写流程
  14. 怎样将github上的代码下载到本地并运行?
  15. 关于瞳孔跟踪、面部器官识别的最终UI界面
  16. 数字世界的积木-从MOS管搭反相器,与非门,锁存器,触发器
  17. win8.1CPU使用率过高、卡顿、破音问题整理
  18. DTC设置控制$85服务
  19. 设置移动光猫外置路由器(上网+iptv正常使用)
  20. 科普|一文读懂NFT.Storage 创建过程

热门文章

  1. GNSS-INS组合导航:KF-GINS(二)
  2. 百度与瑞星的“高大上”——舍本逐末
  3. 数字式声纳设计原理 pdf_阿里P7大牛,深入剖析JVM底层设计原理+高级特性pdf,附46页ppt...
  4. 北京联发科嵌入式软件工程师笔试题目解析
  5. 最新八字精批付费测算系统源码+PHP内核
  6. C语言用fun函数实现两个数的交换
  7. [054] SSL 3.0曝出Poodle漏洞的解决方案-----网民篇
  8. 神舟战神win10改linux,神州战神G40把win10改成win7的详细教程(包括BIOS设置图)
  9. 加米谷大数据报告:多省市成立大数据中心
  10. 如何通过通达信接口获取最近的分钟级别行情数据?