java 实现图片的裁剪

// 图片源

private static final String SRC_FILE="org//zy//demo//jdk//base//image//car1.jpg";

// 目标图片

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

/**

* 读取图像文件

* ImageReader

* @param imgPath

* @throws IOException

*/

public void readUsingImageReader(String imgPath) throws IOException{

// 取得图片读入器

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

System.out.println(readers);

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

System.out.println(reader);

// 取得图片读入流

InputStream source=this.parseImagePath(ImageDemo.SRC_FILE);

ImageInputStream iis = ImageIO.createImageInputStream(source);

reader.setInput(iis, true);

// 图片参数

ImageReadParam param = reader.getDefaultReadParam();

int imageIndex = 0;

int half_width = reader.getWidth(imageIndex)/2;

int half_height = reader.getHeight(imageIndex)/2;

// Rectangle rect = new Rectangle(60, 60, half_width, half_height);

Rectangle rect = new Rectangle(60, 60, 100, 100);

param.setSourceRegion(rect);

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

ImageIO.write(bi, "jpg", this.initDestFile());

}

我的源图片是:

<shapetype id="_x0000_t75" coordsize="21600,21600" o:spt="75" o:preferrelative="t" path="m@4@5l@4@11@9@11@9@5xe" filled="f" stroked="f"><stroke joinstyle="miter"></stroke><formulas><f eqn="if lineDrawn pixelLineWidth 0"></f><f eqn="sum @0 1 0"></f><f eqn="sum 0 0 @1"></f><f eqn="prod @2 1 2"></f><f eqn="prod @3 21600 pixelWidth"></f><f eqn="prod @3 21600 pixelHeight"></f><f eqn="sum @0 0 1"></f><f eqn="prod @6 1 2"></f><f eqn="prod @7 21600 pixelWidth"></f><f eqn="sum @8 21600 0"></f><f eqn="prod @7 21600 pixelHeight"></f><f eqn="sum @10 21600 0"></f></formulas><path o:extrusionok="f" gradientshapeok="t" o:connecttype="rect"></path><lock v:ext="edit" aspectratio="t"></lock></shapetype><shape id="_x0000_i1025" style="WIDTH: 449.25pt; HEIGHT: 318.75pt" type="#_x0000_t75"><imagedata src="file:///C:/DOCUME~1/zhangyi/LOCALS~1/Temp/msohtml1/01/clip_image001.png" o:title="a"></imagedata></shape><!--[if !vml]--> img0.jpg
<!--[endif]-->

上面的程序运行后截得的图片如下:

<shape id="_x0000_i1026" style="WIDTH: 300pt; HEIGHT: 212.25pt" type="#_x0000_t75"><imagedata src="file:///C:/DOCUME~1/zhangyi/LOCALS~1/Temp/msohtml1/01/clip_image003.jpg" o:title="a0.9358084919675186"></imagedata></shape><!--[if !vml]--> img1.jpg
<!--[endif]-->

转: http://www.blogjava.net/zhyiwww/archive/2007/01/30/96767.html
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值