利用Java截取图片例子

今天需要把图片截取以后 , 再利用百度的图片识别转成文本 .

查了一下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);

未完待续... 
 



猜你喜欢

转载自blog.csdn.net/zz153417230/article/details/80096143
今日推荐