Java将图片压缩100KB以下,压缩图片,将几MB的图片压缩成100KB
生活随笔
收集整理的這篇文章主要介紹了
Java将图片压缩100KB以下,压缩图片,将几MB的图片压缩成100KB
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
前言
隨著手機像素越來越大圖片占用內存就越大,用戶上傳多幾張圖片都占用了很多存儲內存,所以我們需要將圖片壓縮為占用內存較小的圖片
實現
復制這個類過去就可以使用,根據自己需求修改即可
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的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: win 10iis php7,win10
- 下一篇: java美元兑换,(Java实现) 美元