利用Java截取图片例子
程序员文章站
2022-04-09 09:14:24
...
今天需要把图片截取以后 , 再利用百度的图片识别转成文本 .
查了一下ImageIO的api , 很简单, 但是不常用, 记录一下, 方便查阅
这是最基础的操作: // 图片读取路径
String inputPath = "D:\\workspace\\test\\target\\classes\\data1.jpg";
// 图片输出路径
String outPath = "D:\\workspace\\test\\target\\classes\\data3.jpg";
// 1.得到图片的输入流
FileInputStream input = new FileInputStream(inputPath);
// 2.用工具类ImageIO得到BufferedImage对象,将图片信息放入缓存区
BufferedImage image = ImageIO.read(input);
// 3.设置截图图片的(x坐标,y坐标,width宽,height高)信息,并返回截切的新图片,存入缓存区
BufferedImage result = image.getSubimage(190, 150, 438, 450);
// 4.得到图片的输出流
FileOutputStream out = new FileOutputStream(outPath);
// 5. 将缓存区的图片,利用ImageIO工具类输出到指定位置.
ImageIO.write(result, "jpg", out);
高级一点的处理图片的方式, 使用ImageReader . 因为不需要吧图片放入缓存区再操作, 可以节省内存, 功能也更强大.
// 1.得到ImageReader对象,支持多种文件格式
Iterator<ImageReader> it = ImageIO.getImageReadersByFormatName("jpg");
ImageReader imageReader = it.next();
// 2.获得图片的ImageInputStream对象
File file = new File(inputPath);
ImageInputStream in = ImageIO.createImageInputStream(file);
// 3.将输入源的流注入到ImageReader对象中, 使其关联.对于只能储存一张图片的文件,传入true即可
imageReader.setInput(in, true);
// 4.利用ImageReader操作图片,得到第一张图片(仅有一张)的宽
int width = imageReader.getWidth(0);
System.out.println(width);
未完待续...
上一篇: python operator模块
下一篇: Spring aop 小例子demo