Java中内置的压缩图片有两种方式:
- 通过Image的getScaledInstance方法将图片尺寸进行压缩,它的压缩策略有:
SCALE_DEFAULT 默认图像缩放算法 SCALE_FAST 缩放速度优先 SCALE_SMOOTH 图像平滑度优先 - 使用ImageWriteParam的setCompressionQuality方法设置ImageWrite输出图片时生成的图片质量,它的优点是可以在不改变图片尺寸的情况下将图片的大小压缩,并且压缩效率比较高.
以下代码是将两者一起使用,达到同时控制压缩图片尺寸和大小的功能.
package test;
import java.awt.Image;
import java.awt.image.BufferedImage;
import java.awt.image.ColorModel;
import java.io.ByteArrayInputStream;
import java.io.ByteArrayOutputStream;
import java.io.File;
import java.util.Iterator;
import javax.imageio.IIOImage;
import javax.imageio.ImageIO;
import javax.imageio.ImageTypeSpecifier;
import jav