1 Apabila menggunakan fungsi muat naik imej, imej yang dimuat naik adalah terlalu besar, menyebabkan terlalu banyak penggunaan sumber pelayan
2 adalah berbeza, dan keperluan bahagian hadapan Apabila memaparkan saiz tetap kepada pengguna, imej yang dimuat naik boleh diproses secara seragam melalui java
Sebelum pemampatan
2. Selepas pemampatan
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.image.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 { //图片所在路径 BufferedImage templateImage = ImageIO.read(new File("f:/temp/linghu.jpg")); //原始图片的长度和宽度 int height = templateImage.getHeight(); int width = 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(); } } }
Atas ialah kandungan terperinci Bagaimana untuk memampatkan saiz imej dalam Java. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!