在公司的项目中有压缩图片的需求,最近一个星期一直在找一些关于java中图片压缩的文章,只找到了一篇很满意的文章,但是还是不能满足我需求。因为图片的格式多种多样,就算是主流的图片格式也是有好多种。但是在java中对于jpg、jpeg、bmp这中格式的图片提供了友好的支持。对于png,gif等一些其他的格式支持的不是很好。压缩的代码我这里就不写了。网上确实有不少。但是都是jpg这个格式的。png的算是可以压缩,但是效果不尽人意。gif直接挂掉。而且大部分压缩的文章都是对于图片进行裁剪、缩放后得到的小图,而不是对于图片本身进行直接压缩。以减少其占用的存储空间。
感觉这种东西,需要一个算法大师来进行图片压缩的处理。一般的人也就止步于jpg、jpeg、pmd这几种格式的压缩,对png进行不尽人意的压缩。从我是指直接压缩其质量,从而达到减少存储空间的目的。而不是通过对图片的裁剪、等比缩放,来达到减少存储空间的目的。至于什么无损压缩。还是洗洗睡吧。
友情提示一下:在maven项目中对于JPEGEncoder等一些类会报找不到的异常。找资料说是在JDK1.7被移除了。但是我在源码中明明找到了,而且在编码中还是可以使用的,但是一打包就血崩。真是日了狗了。
至于那一片很满意的文章在博客中有转载,需要的可以找找。
后记:
可以将png格式转换成jpg格式,来达到压缩的目的。在绘图的时候记得将背景颜色设置成白色即可,如果设置成透明色,还是黑背景。。。。。。。