当前位置: 首页 > 编程笔记 >

java图片压缩工具类

叶恩
2023-03-14
本文向大家介绍java图片压缩工具类,包括了java图片压缩工具类的使用技巧和注意事项,需要的朋友参考一下

直接上java图片压缩code:

import java.awt.Image; 
import java.awt.image.BufferedImage; 
import java.io.ByteArrayOutputStream; 
import java.io.IOException; 
import java.io.InputStream; 
  
import javax.imageio.ImageIO; 
  
public class ImageProcess { 
 /** 
  * 图片 
  */ 
 private Image img;  
 /** 
  * 宽度 
  */ 
 private int width;  
 /** 
  * 高度 
  */ 
 private int height;  
 /** 
  * 文件格式 
  */ 
 private String imageFormat; 
 /** 
  * 构造函数 
  * @throws Exception 
  */  
 public ImageProcess(InputStream in,String fileName) throws Exception{  
   //构造Image对象  
   img = ImageIO.read(in);  
   //得到源图宽  
   width = img.getWidth(null); 
   //得到源图长  
   height = img.getHeight(null); 
   //文件格式 
   imageFormat = fileName.substring(fileName.lastIndexOf(".")+1); 
 }  
 /** 
  * 按照宽度还是高度进行压缩 
  * @param w int 最大宽度 
  * @param h int 最大高度 
  */  
 public byte[] resizeFix(int w, int h) throws IOException {  
   if (width / height > w / h) {  
     return resizeByWidth(w);  
   } else {  
     return resizeByHeight(h);  
   }  
 }  
 /** 
  * 以宽度为基准,等比例放缩图片 
  * @param w int 新宽度 
  */  
 public byte[] resizeByWidth(int w) throws IOException {  
   int h = (int) (height * w / width);  
   return resize(w, h);  
 }  
 /** 
  * 以高度为基准,等比例缩放图片 
  * @param h int 新高度 
  */  
 public byte[] resizeByHeight(int h) throws IOException {  
   int w = (int) (width * h / height);  
   return resize(w, h);  
 }  
 /** 
  * 强制压缩/放大图片到固定的大小 
  * @param w int 新宽度 
  * @param h int 新高度 
  */  
 public byte[] resize(int w, int h) throws IOException {  
   // SCALE_SMOOTH 的缩略算法 生成缩略图片的平滑度的 优先级比速度高 生成的图片质量比较好 但速度慢  
   BufferedImage image = new BufferedImage(w, h,BufferedImage.TYPE_INT_RGB );   
   image.getGraphics().drawImage(img, 0, 0, w, h, null); // 绘制缩小后的图  
   ByteArrayOutputStream baos = new ByteArrayOutputStream(); 
   ImageIO.write(image, imageFormat, baos); 
   return baos.toByteArray(); 
 }  
} 

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持小牛知识库。

 类似资料:
  • 本文向大家介绍Android整理好的图片压缩工具类,包括了Android整理好的图片压缩工具类的使用技巧和注意事项,需要的朋友参考一下 Android设备的内存有限,对于大图片,必须进行压缩后再进行显示,否则会出现内存溢出:OOM; 处理策略: 1.使用缩略图(Thumbnails); Android系统会给检测到的图片创建缩略图;可以操作Media内容提供者中的Image对图片进行操作; 2.手

  • compressImage 压缩图片接口(安卓10.0.12版本支持,ios 10.0.15版本支持) 使用方法 AlipayJSBridge.call('compressImage', { apFilePaths: ["https://resource/apmlcc0ed184daffc5a0d8da86b2f518cf7b.image"], compressLevel: 4 }, f

  • 由来 在Java中,对文件、文件夹打包,压缩是一件比较繁琐的事情,我们常常引入Zip4j进行此类操作。但是很多时候,JDK中的zip包就可满足我们大部分需求。ZipUtil就是针对java.util.zip做工具化封装,使压缩解压操作可以一个方法搞定,并且自动处理文件和目录的问题,不再需要用户判断,压缩后的文件也会自动创建文件,自动创建父目录,大大简化的压缩解压的复杂度。 方法 Zip 压缩 Zi

  • 本文向大家介绍Android图片压缩(质量压缩和尺寸压缩),包括了Android图片压缩(质量压缩和尺寸压缩)的使用技巧和注意事项,需要的朋友参考一下 在网上调查了图片压缩的方法并实装后,大致上可以认为有两类压缩:质量压缩(不改变图片的尺寸)和尺寸压缩(相当于是像素上的压缩);质量压缩一般可用于上传大图前的处理,这样就可以节省一定的流量,毕竟现在的手机拍照都能达到3M左右了,尺寸压缩一般可用于生成

  • 本文向大家介绍Java实现的zip压缩及解压缩工具类示例,包括了Java实现的zip压缩及解压缩工具类示例的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了Java实现的zip压缩及解压缩工具类。分享给大家供大家参考,具体如下: 更多关于java算法相关内容感兴趣的读者可查看本站专题:《Java文件与目录操作技巧汇总》、《Java数据结构与算法教程》、《Java操作DOM节点技巧总结》和《J

  • html 单页面项目,用什么压缩工具来压缩图片,css,js好呢? 项目是通过cdn引入的vue ,还引入了一些本地的css,js,图片,现在项目要上线,想提高加载速度压缩一下,用什么工具好?一个一个这样压缩就算了。