首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > 编程 >

应用java实现图片截取

2012-08-21 
使用java实现图片截取今天使用java实现图片截取,废话不说,看看代码:package com.imageimport java.awt.Re

使用java实现图片截取

今天使用java实现图片截取,废话不说,看看代码:

package com.image;import java.awt.Rectangle;import java.awt.image.BufferedImage;import java.io.*;import java.util.Iterator;import javax.imageio.ImageIO;import javax.imageio.ImageReadParam;import javax.imageio.ImageReader;import javax.imageio.stream.ImageInputStream;public class ImageUtils {    public static void cutJPG(InputStream input, OutputStream out, int x,            int y, int width, int height) throws IOException {        ImageInputStream imageStream = null;        try {            Iterator<ImageReader> readers = ImageIO.getImageReadersByFormatName("jpg");            ImageReader reader = readers.next();            imageStream = ImageIO.createImageInputStream(input);            reader.setInput(imageStream, true);            ImageReadParam param = reader.getDefaultReadParam();                        System.out.println(reader.getWidth(0));            System.out.println(reader.getHeight(0));            Rectangle rect = new Rectangle(x, y, width, height);            param.setSourceRegion(rect);            BufferedImage bi = reader.read(0, param);            ImageIO.write(bi, "jpg", out);        } finally {            imageStream.close();        }    }            public static void cutPNG(InputStream input, OutputStream out, int x,            int y, int width, int height) throws IOException {        ImageInputStream imageStream = null;        try {            Iterator<ImageReader> readers = ImageIO.getImageReadersByFormatName("png");            ImageReader reader = readers.next();            imageStream = ImageIO.createImageInputStream(input);            reader.setInput(imageStream, true);            ImageReadParam param = reader.getDefaultReadParam();                        System.out.println(reader.getWidth(0));            System.out.println(reader.getHeight(0));                        Rectangle rect = new Rectangle(x, y, width, height);            param.setSourceRegion(rect);            BufferedImage bi = reader.read(0, param);            ImageIO.write(bi, "png", out);        } finally {            imageStream.close();        }    }        public static void cutImage(InputStream input, OutputStream out, String type,int x,            int y, int width, int height) throws IOException {        ImageInputStream imageStream = null;        try {            String imageType=(null==type||"".equals(type))?"jpg":type;            Iterator<ImageReader> readers = ImageIO.getImageReadersByFormatName(imageType);            ImageReader reader = readers.next();            imageStream = ImageIO.createImageInputStream(input);            reader.setInput(imageStream, true);            ImageReadParam param = reader.getDefaultReadParam();            Rectangle rect = new Rectangle(x, y, width, height);            param.setSourceRegion(rect);            BufferedImage bi = reader.read(0, param);            ImageIO.write(bi, imageType, out);        } finally {            imageStream.close();        }    }        public static void main(String[] args) throws Exception {        ImageUtils.cutJPG(new FileInputStream("c:\\test.JPG"),                  new FileOutputStream("c:\\test2.jpg"), 0,0,200,100);                ImageUtils.cutPNG(new FileInputStream("c:\\1.png"),                new FileOutputStream("c:\\test3.png"), 0,0,50,40);    }}
?

热点排行