
JAVA 如何实现对已有图片的部分截图
java中如何实现对已有图片的部分截图。比如我电脑上有一张800*600大小的图片,我想要截取该图片中横向100~400,纵向200~350的区域该怎么做啊?!!!哪位大...
java中如何实现对已有图片的部分截图。比如我电脑上有一张800*600
大小的图片,我想要截取该图片中横向100~400,纵向200~350的区域
该怎么做啊?!!!
哪位大哥帮下忙啊。!!!
谢谢了!
本人是初学的,希望能有代码。。。 展开
大小的图片,我想要截取该图片中横向100~400,纵向200~350的区域
该怎么做啊?!!!
哪位大哥帮下忙啊。!!!
谢谢了!
本人是初学的,希望能有代码。。。 展开
1个回答
展开全部
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();
}
}
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();
}
}
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询
广告 您可能关注的内容 |