加入收藏在线咨询
位置:主页 >

柬埔寨皇冠云顶集团:Java使用javax.imageio实现对图片的缩放和剪裁

作者:dudu时间:11月23日浏览:


概述:

基于Sun自带lib进行图片的操作,此处主要展示图片的缩放和图片剪裁

实现:

图片缩放:

/**

* 图片伸缩,不破坏图片*

* @param srcFile 原图片路径* @param dstFile 目标图片路径

* @param dstWidth 目标宽度* @param dstHeight 目标高度

* @date 2013-11-1*/

public static void scale(String srcFile, String dstFile, int dstWidth, int dstHeight) {

try {ImageInputStream iis = ImageIO.c柬埔寨皇冠云顶集团reateImageInputStream(new File(srcFile));

Iterator iterator = ImageIO.getImageReaders(iis);

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

reader.setInput(iis, true);

BufferedImage source = reader.read(0);

BufferedImage tag = new BufferedImage(dstWidth, dstHeight, source.getType());

tag.getGraphics().drawImage(source, 0, 0, dstWidth, dstHeight, null);File file = new File(dstFile);

ImageIO.write(tag, reader.getFormatName(), file);} catch (Exception e) {

e.printStackTrace();}

}

图片剪裁:

/**

* 图片剪裁,基于肇危坐标(x,y)和范围[widthRange,heightRange]*

* @param柬埔寨皇冠云顶集团 srcFile 原图片路径* @param dstFile 目标图片路径

* @param x 肇端X* @param y 肇端Y

* @param widthRange 范围width* @param heightRange 范围height

* @date 2013-11-1*/

public static void cut(String srcFile, String dstFile, int x, int y, int widthRange,int heightRange) {

try {

ImageInputStream iis = ImageIO.createImageInputStream(new File(srcFile));

Iterator iterator = ImageIO.getImageReaders(iis);

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

reader.setInput(iis, true);ImageReadParam param = reader.getDefaultReadParam();

Rectan柬埔寨皇冠云顶集团gle rectangle = new Rectangle(x, y, widthRange, heightRange);param.setSourceRegion(rectangle);

BufferedImage bi = reader.read(0, param);File file = new File(dstFile);

ImageIO.write(bi, reader.getFormatName(), file);} catch (Exception e) {

e.printStackTrace();}

}

测试:

public static void main(String[] args) {

String srcFile = "G:/1.jpg";String dstF柬埔寨皇冠云顶集团ile = "G:/test.jpg";

int width = 柬埔寨皇冠云顶集团120;int height = 12000;

cut(srcFile, dstFile, 10, 10, width, height);scale(srcFile, dstFile, width, height);

}

评价:

效率很低

电话:13866999966
联系人:王经理
Q Q:88996699
邮箱:admin@dede58.com
地址:中国XX省XX市XX路XX号