java 缩放比例_Java等比例缩放并压缩图片

/**

* 重新设置图片大小

* @param srcImage

* @return

*/

private BufferedImage resize(BufferedImage srcImage) {

int width = srcImage.getWidth();

int height = srcImage.getHeight();

if (this.width > 0 && this.height > 0) {

if (this.fixedGivenSize) {

this.givenWidth = this.width;

this.givenHeight = this.height;

if (!this.keepRatio) {

width = this.width;

height = this.height;

}

}

if (this.keepRatio) {

int drawWidth = this.width;

int drawHeight = this.height;

double sourceRatio = (double) width / (double) height;

double targetRatio = (double) this.width / (double) this.height;

if (Double.compare(sourceRatio, targetRatio) != 0) {

if (sourceRatio > targetRatio) {

drawHeight = (int) Math.round(this.width / sourceRatio);

} else {

drawWidth = (int) Math.round(this.height * sourceRatio);

}

}

if (!this.fixedGivenSize) {

this.givenWidth = drawWidth;

this.givenHeight = drawHeight;

}

width = drawWidth;

height = drawHeight;

}

} else if (this.scale > 0) {

width = (int)(width * this.scale);

height = (int)(height * this.scale);

} else if (this.width > 0 && this.height == 0) {

height = this.width * height / width;

width = this.width;

} else if (this.width == 0 && this.height > 0) {

width = this.height * width / height;

height = this.height;

}

if (width <= 1 || height <= 1) {

throw new IllegalStateException("width or height value error!");

}

this.width = width;

this.height = height;

this.givenWidth = (this.givenWidth == 0 ? width : this.givenWidth);

this.givenHeight = (this.givenHeight == 0 ? height : this.givenHeight);

return this.createImage(srcImage, width, height);

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值