java中如何实现对已有图片的部分截图

 
———java中如何实现对已有图片的部分截图。比如我电脑上有一张800*600 
大小的图片,我想要截取该图片中横向100~400,纵向200~350的区域 
该怎么做啊?!!! 
———————————————————————————————————————————————
 
import java.awt.Rectangle; 
import java.awt.image.BufferedImage; 
import java.io.File; 
import java.io.FileInputStream; 
import java.io.InputStream; 
import java.util.Iterator; 

import javax.imageio.ImageIO; 
import javax.imageio.ImageReadParam; 
import javax.imageio.ImageReader; 
import javax.imageio.stream.ImageInputStream; 

public class Test95 { 
// 图片源 

private static final String SRC_FILE = "c://1.jpg"; 

// 目标图片 

private static final String DEST_FILE = "c://2.jpg"; 

public void readUsingImageReader() throws Exception{ 

// 取得图片读入器 

Iterator readers = ImageIO.getImageReadersByFormatName("jpg"); 

System.out.println(readers); 

ImageReader reader = (ImageReader) readers.next(); 

System.out.println(reader); 

// 取得图片读入流 

InputStream source = new FileInputStream(SRC_FILE); 

ImageInputStream iis = ImageIO.createImageInputStream(source); 

reader.setInput(iis, true); 

// 图片参数 

ImageReadParam param = reader.getDefaultReadParam(); 

Rectangle rect = new Rectangle(100, 200, 300, 150);//100,200是左上起始位置,300就是取宽度为300的,就是从100开始取300宽,就是横向100~400,同理纵向200~350的区域就取高度150 

param.setSourceRegion(rect); 

BufferedImage bi = reader.read(0, param); 

ImageIO.write(bi, "jpg", new File(DEST_FILE)); 

} 
public static void main(String[] args) throws Exception{ //main方法测试用
Test95 t =new Test95(); 
t.readUsingImageReader(); 
} 
}
  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值