Author : zhyiwww<o:p>
E-Mail : [email protected]<o:p>
Date : 2007-1-30<o:p>
转载请注明出处 www.BlogJava.net/zhyiwww<o:p>
(copyright by @ zhangyi) <o:p>
</o:p>
下面是我的一段代码,实现如何截取图片的: <o:p> </o:p>
<o:p> </o:p> // 图片源 <o:p> </o:p>
private static final String SRC_FILE="org//zy//demo//jdk//base//image//car1.jpg";<o:p>
// 目标图片 <o:p> </o:p>
private static final String DEST_FILE="c://a.jpg";<o:p>
<o:p> </o:p>
/**<o:p>
* 读取图像文件 <o:p> </o:p>
* 用 ImageReader<o:p>
* @param imgPath<o:p>
* @throws IOException <o:p>
*/<o:p>
public void readUsingImageReader(String imgPath) throws IOException{<o:p>
<o:p> </o:p>
// 取得图片读入器 <o:p> </o:p>
Iterator readers = ImageIO.getImageReadersByFormatName("jpg");<o:p>
System.out.println(readers);<o:p>
ImageReader reader = (ImageReader)readers.next();<o:p>
System.out.println(reader);<o:p>
<o:p> </o:p>
// 取得图片读入流 <o:p> </o:p>
InputStream source=this.parseImagePath(ImageDemo.SRC_FILE);<o:p>
ImageInputStream iis = ImageIO.createImageInputStream(source);<o:p>
<o:p> </o:p>
reader.setInput(iis, true);<o:p>
<o:p> </o:p>
// 图片参数 <o:p> </o:p>
<o:p> </o:p>
ImageReadParam param = reader.getDefaultReadParam();<o:p>
int imageIndex = 0;<o:p>
int half_width = reader.getWidth(imageIndex)/2;<o:p>
int half_height = reader.getHeight(imageIndex)/2;<o:p>
// Rectangle rect = new Rectangle(60, 60, half_width, half_height); <o:p>
Rectangle rect = new Rectangle(60, 60, 100, 100);<o:p>
<o:p> </o:p>
param.setSourceRegion(rect);<o:p>
<o:p> </o:p>
BufferedImage bi = reader.read(0,param); <o:p>
<o:p> </o:p>
ImageIO.write(bi, "jpg", this.initDestFile()); <o:p>
<o:p> </o:p>
}<o:p>
<o:p> </o:p>
我的源图片是: <o:p> </o:p>
<!----> <!---->
<!----> <o:p> </o:p>
<o:p> </o:p>
上面的程序运行后截得的图片如下: <o:p> </o:p>
<!----> <!---->
<!----> <o:p> </o:p>
<o:p> </o:p>