失眠网,内容丰富有趣,生活中的好帮手!
失眠网 > java上传图片压缩大小

java上传图片压缩大小

时间:2024-02-13 22:19:03

相关推荐

java上传图片压缩大小

java上传图片压缩大小方法:

package oms.util;import java.awt.Image;import java.awt.image.BufferedImage;import java.io.File;import java.io.FileOutputStream;import java.io.IOException;import com.sun.image.codec.jpeg.JPEGCodec;import com.sun.image.codec.jpeg.JPEGEncodeParam;import com.sun.image.codec.jpeg.JPEGImageEncoder;public class ImageUtil {/*** * @param f* 图片所在的文件夹路径* @param filelist* 图片路径* @param ext* 扩展名* @param n* 图片名* @param w* 目标宽* @param h* 目标高* @param per* 百分比* @throws IOException*/public static void Tosmallerpic(File srcFile, String targetFilePath, int w,int h, float per) throws IOException {Image src;src = javax.imageio.ImageIO.read(srcFile); // 构造Image对象Size size =GetSize(src.getWidth(null), src.getHeight(null), w, h);BufferedImage tag = new BufferedImage(size.w, size.h,BufferedImage.TYPE_INT_RGB);// tag.getGraphics().drawImage(src,0,0,size.w,size.h,null); //绘制缩小后的图tag.getGraphics().drawImage(src.getScaledInstance(size.w, size.h, Image.SCALE_SMOOTH), 0, 0,null);FileOutputStream newimage = new FileOutputStream(targetFilePath); // 输出到文件流JPEGImageEncoder encoder = JPEGCodec.createJPEGEncoder(newimage);JPEGEncodeParam jep = JPEGCodec.getDefaultJPEGEncodeParam(tag);/* 压缩质量 */jep.setQuality(per, true);encoder.encode(tag, jep);// encoder.encode(tag); //近JPEG编码newimage.close();}static class Size {public int w;public int h;}public static Size GetSize(int imgWidth, int imgHeight, int maxWidth,int maxHeight) {Size size = new Size();if(imgWidth<maxWidth&&imgHeight<maxHeight){size.w = imgWidth;size.h = imgHeight;return size;}double sw = (imgWidth * 1.0) / (maxWidth * 1.0);double sh = (imgHeight * 1.0) / (maxHeight * 1.0);if (sw > sh) {size.w = maxWidth;size.h = maxWidth * imgHeight / imgWidth;} else {size.w = maxHeight * imgWidth / imgHeight;size.h = maxHeight;}return size;}}

调用方法:ImageUtil.Tosmallerpic(srcFile, zomPath, 150, 150, (float) 1);

如果觉得《java上传图片压缩大小》对你有帮助,请点赞、收藏,并留下你的观点哦!

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。