您的位置:首页 > 编程语言 > Java开发

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

2012-09-20 15:34 260 查看

———java中如何实现对已有图片的部分截图。比如我电脑上有一张800*600
大小的图片,我想要截取该图片中横向100~400,纵向200~350的区域
该怎么做啊?!!!
———————————————————————————————————————————————


importjava.awt.Rectangle;
importjava.awt.image.BufferedImage;
importjava.io.File;
importjava.io.FileInputStream;
importjava.io.InputStream;
importjava.util.Iterator;

importjavax.imageio.ImageIO;
importjavax.imageio.ImageReadParam;
importjavax.imageio.ImageReader;
importjavax.imageio.stream.ImageInputStream;

publicclassTest95{
//图片源

privatestaticfinalStringSRC_FILE="c://1.jpg";

//目标图片

privatestaticfinalStringDEST_FILE="c://2.jpg";

publicvoidreadUsingImageReader()throwsException{

//取得图片读入器

Iteratorreaders=ImageIO.getImageReadersByFormatName("jpg");

System.out.println(readers);

ImageReaderreader=(ImageReader)readers.next();

System.out.println(reader);

//取得图片读入流

InputStreamsource=newFileInputStream(SRC_FILE);

ImageInputStreamiis=ImageIO.createImageInputStream(source);

reader.setInput(iis,true);

//图片参数

ImageReadParamparam=reader.getDefaultReadParam();

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

param.setSourceRegion(rect);

BufferedImagebi=reader.read(0,param);

ImageIO.write(bi,"jpg",newFile(DEST_FILE));

}
publicstaticvoidmain(String[]args)throwsException{//main方法测试用
Test95t=newTest95();
t.readUsingImageReader();
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: