欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

利用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);

未完待续...



相关标签: 图片处理