Java十大经典排序算法的实现图解
400
2022-08-03
Java实现压缩图片大小
本文实例为大家分享了java实现压缩图片大小的具体代码,供大家参考,具体内容如下
使用场景:
1.当使用图片上传功能时,上传图片太大,造成对服务器资源过多的占用2.客户端上传图片尺寸大小不一,前端需要展示给用户固定尺寸时,可通过java进行对上传图片统一进行处理
功能预览
1.压缩前
2.压缩后
代码实现:
package com.linghu.test;
import com.sun.image.codec.jpeg.JPEGCodec;
import com.sun.image.codec.jpeg.JPEGImageEncoder;
import javax.imageio.ImageIO;
import java.awt.imagegANbYx.BufferedImage;
import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
/*
* @author 在下令狐
* @describe 压缩图片大小
* @date 2020/6/12
*/
public class TestCompressImage {
public static void main(String[] args) {
try {
/http:///图片所在路径
BufferedImage templateImage = ImageIO.read(new File("f:/temp/linghu.jpg"));
//原始图片的长度和宽度
int height = templateImage.getHeight();
int widgANbYxth = templateImage.getWidth();
//通过比例压缩
float scale = 0.5f;
//通过固定长度压缩
/*int doWithHeight = 100;
int dowithWidth = 300;*/
//压缩之后的长度和宽度
int doWithHeight = (int) (scale * height);
int dowithWidth = (int) (scale * width);
BufferedImage finalImage = new BufferedImage(dowithWidth, doWithHeight, BufferedImage.TYPE_INT_RGB);
finalImage.getGraphics().drawImage(templateImage.getScaledInstance(dowithWidth, doWithHeight, java.awt.Image.SCALE_SMOOTH), 0, 0, null);
//图片输出路径,以及图片名
FileOutputStream fileOutputStream = new FileOutputStream("f:/temp/linghuAfterDoWith.jpg");
JPEGImageEncoder encoder = JPEGCodec.createJPEGEncoder(fileOutputStream);
encoder.encode(finalImage);
fileOutputStream.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。
发表评论
暂时没有评论,来抢沙发吧~