(1)使用第三方工具实现(ImageMagick+im4java)

压缩方式:通过压缩图片质量方式(在服务器端安装ImageMagick软件后,通过im4java包,将Java代码转化成对ImageMagick的命令行调用)
好处:支持网络上所有格式的图片压缩:
        压缩后的图片分辨率与原始图片一致,不会出现图片宽高缩放的情况。
坏处:依赖第三方jar包,需要在服务器端安装ImageMagick软件。


(2)使用第三方工具实现(thumbnailator)

压缩方式:通过降低图片分辨率实现,即缩放图片宽高。
好处:相比较第一种(ImageMagick+im4java),不需要安装第三方软件。
坏处:不支持苹果手机的HEIC格式图片;
        依赖第三方jar包;
  


(3)使用Java自带的ImageIO图片处理类。(只支持六种图片格式:jpg、bmp、gif、png、wbmp、jpeg)

压缩方式:通过降低图片分辨率实现,即缩放图片宽高。
好处:不需要依赖第三方jar包。
坏处:不支持苹果手机的HEIC格式图片;
        可能会导致压缩后的图片宽高比原始图片小;
        网上说会发生OOM,本地测试没有出现过。

更多推荐

压缩图片的三种方式(Java)