Java 图片压缩的两种方式
2. Graphics
Graphics类提供基本绘图方法,Graphics类提供基本的几何图形绘制方法,主要有:画线段、画矩形、画圆、画带颜色的图形、画椭圆、画圆弧、画多边形、画字符串等。 这里不做一一赘述, 进重点介绍一下,利用Graphics类如何进行压缩图像。不多说直接上代码。
其实,关键点就两处
BufferedImage buffImg = new BufferedImage(width, height, BufferedImage.TYPE_INT_RGB); buffImg.getGraphics().drawImage(image.getScaledInstance(width, height, Image.SCALE_SMOOTH), 0, 0, null);
详细情形请查阅Graphics源代码。
第二种方案就是使用google thumbnailator jar包,主要是Thumbnails类, 大家可以去maven仓库里去下载。还是直接上代码,大家可以发现编码变得更加容易,而且宽高都是自适应的,另外Thumbnails还提供批量压缩方法,功能十分强大,效率也更高。
4. 效率测试
既然上述两种方式都可以压缩图片,那么哪一种效率更高呢?为此我特意做了一下实验,准备了74张图片进行压缩,ppi均为125
通过实验发现Graphics压缩74张图片大约需要3.409秒,而thumbnail仅需要0.943秒,当然试验时间与图片大小有关系。
文章来源: Java 图片压缩的两种方式