前言

随着手机像素越来越大图片占用内存就越大,用户上传多几张图片都占用了很多存储内存,所以我们需要将图片压缩为占用内存较小的图片

实现

复制这个类过去就可以使用,根据自己需求修改即可

package com.util;import javax.imageio.ImageIO;
import java.awt.*;
import java.awt.image.BufferedImage;
import java.io.File;
import java.io.IOException;/*** 图片处理类** @author yyq*/
public class ImageUtil {/*** 生成缩略图** @param oidPath 文件大小* @param newPath 原文件路径* @param smallSize 文件压缩倍数* @return*/public static boolean imageGenerateSmall(String oidPath, String newPath, double smallSize) {try {File bigFile = new File(oidPath);Image image = ImageIO.read(bigFile);int width = image.getWidth(null);int height = image.getHeight(null);int widthSmall = (int) (width / smallSize);int heightSmall = (int) (height / smallSize);BufferedImage buffi = new BufferedImage(widthSmall, heightSmall, BufferedImage.TYPE_INT_RGB);Graphics g = buffi.getGraphics();g.drawImage(image, 0, 0, widthSmall, heightSmall, null);g.dispose();ImageIO.write(buffi, "jpg", new File(newPath));} catch (IOException e) {e.printStackTrace();return false;}return true;}/*** 图片压缩,图片大小超过100K自动按比例压缩到100K以下** @param fileSize 文件大小* @param oidPath 原文件路径* @param newPath 压缩后路径* @return* @throws Exception*/public static boolean imageCompress(long fileSize, String oidPath, String newPath) throws Exception {boolean rs = true;int kb = 100 * 1024;if (fileSize > 100 * 1024) {int smallSize = (int) (fileSize % kb == 0 ? fileSize / kb : fileSize / kb + 1);double size = Math.ceil(Math.sqrt(smallSize));rs = ImageUtil.imageGenerateSmall(oidPath, newPath, size);}return rs;}public static void main(String[] args) throws Exception {File file = new File("D:\\Program Files\\1.jpg");System.out.println("--------------文件大小(byte)----------------:"+file.length());imageCompress(file.length(), "D:\\Program Files\\1.jpg", "D:\\Program Files\\2.jpg");}}

Java将图片压缩100KB以下,压缩图片,将几MB的图片压缩成100KB相关推荐

  1. python图片压缩算法_Optipng,jpegoptim应用,用python实现图片压缩,让你的网站变得更快...

    compress p_w_picpaths according to google suggestion. 1.环境:ubuntu12.04 . python 2.7.3 2.工具:optipng . ...

  2. 图片不超过200kb怎么调整?一分钟学会图片压缩到指定大小

    很多网站为了保证页面的流畅度会限制图片上传的kb大小,所以我们需要把图片压缩到指定大小(图片压缩到指定大小 图片压缩大小至指定kb以下-压缩图),那么有没有比较快捷的方法可以自定义压缩图片大小呢?今天 ...

  3. 图片太大怎么办?压缩图帮你几秒搞定在线图片压缩

    说到图片压缩(https://www.yasuotu.com/),对于经常使用图片的小伙伴们来说一定都不陌生,大家在使用图片的时候难免会遇到图片大小超过限制没法使用的情况,对于一些超过限制不多的图片, ...

  4. 【踩坑】Linux java中ftp下载文件,解压文件损坏,以及图片下载打开只显示下载路径的问题

    [踩坑]Linux java中ftp下载文件,解压文件损坏,以及图片下载打开只显示下载路径的问题 一. 问题重现 二. 问题解决思路 1. 确认是不是上传就导致数据出错了 2. 是不是平台问题 三. ...

  5. java基础知识回顾之javaIO类---FileInputStream和FileOutputStream字节流复制图片

    package com.lp.ecjtu;import java.io.FileInputStream; import java.io.FileNotFoundException; import ja ...

  6. java script的图片隐藏,java和javascript中过滤掉img形式的字符串不显示图片的方法...

    本文实例讲述了java和javascript中过滤掉img形式的字符串不显示图片的方法.分享给大家供大家参考.具体实现方法如下: 1. javascript过滤掉和形式的字符串 复制代码代码如下: 过 ...

  7. java上传图片到target目录,jsp如何访问target里的图片路径

    java上传图片到target目录,jsp如何访问target里的图片路径 昨天有个同学在做springmvc的图片上传,上传成功了却无法从网页中访问,我看了看上传后的路径,它用的idea编辑器,图片 ...

  8. java使用爬虫工具jsoup实现抓取网页的内容及图片并写入到word文档中

    背景: 有个朋友最近让帮忙写个小功能,需求大概是,1万个链接,让爬每个链接中的某一段文章并附一张图片,每五个链接写入到一个word文档中. 基本思路,就是先去找个爬虫框架把链接网页中内容和图片写到wo ...

  9. Java爬虫学习一一Jsoup爬取彼岸桌面分类下的图片

    最近在找工作,在这个过程中我感到很迷茫,投了很多简历,被查看的却很少,其中也有到现场去面试,结果也很不理想(╥╯^╰╥). 哈哈,跑题了,我在看之前所做的项目时,在我的收藏夹中看到了以前收藏的有关爬虫 ...

  10. java下载附件给(pdf、pptx、word、excel、图片)添加水印

    java下载附件给(pdf.pptx.word.excel.图片)添加水印 使用组件 poi itext spire.xls ooxml-schemas twelvemonkeys.imageio 等 ...

最新文章

  1. 计算机书籍-机器学习入门之道
  2. 优化网站的TDK要注意哪些问题?
  3. 新买的笔记本电脑怎么分盘_电脑怎么增加C盘空间?黑客教你不花钱增加C盘空间...
  4. NSIS安装制作程序
  5. 浪潮服务器更换硬盘_总金额2.5亿!浪潮信息助力中国移动部署NFV项目
  6. 归并排序,快速排序,冒泡排序,选择排序,基数排序,桶排序,堆排序(c++实现)
  7. 全国计算机等级考试题库二级C操作题100套(第07套)
  8. 她小时候被指没数学天分,后来竟成为首位获数学大奖的女人;她的生命很短暂却惊艳了全世界...
  9. SSL双向认证和SSL单向认证的区别
  10. python实现栈_Python 栈
  11. 《Python编程从入门到实践》记录之函数编写指南
  12. 前端点击按钮下载图片
  13. 搜狗浏览器显示无法解析服务器的DNS地址,搜狗浏览器显示无法解析DNS地址的解决方法...
  14. 安卓电视通过U盘安装第三方软件教程
  15. 从0到1 用腾讯云低代码开发一个问卷小程序(基于模版中心二开)
  16. unity urp内置lit材质源码解析(下)
  17. RE2:Simple and Effective Text Matching with Richer Alignment Features
  18. ⑤CSS浮动学成在线网实例
  19. Java学习笔记(22)Developing Efficient Algorithms
  20. PM 五大过程组、十大管理

热门文章

  1. 分享工作上的一些体会
  2. 软件开发工具【七】 之 Eclipse入门
  3. 五年了还在原地踏步咋整?技术大佬给你整理了一套切实可行的方法论
  4. 记事本 批量新建文件夹
  5. java 调用弗雷_JAVA API(一)String类和StringBuffer类
  6. 读懂trace file (tkprof格式化) 6
  7. 快手提前批--Java开发面经
  8. markdown笔记(二)—— 插入图片及调整大小
  9. 旷视研究院夺得 NeurIPS 2021 ML4CO 组合优化比赛 Dual task 赛道第一
  10. Jenkins docker下JNLP slave节点远程连接报错port not reachable的解决