java图片压缩库调研

方案

效果

部署方式

说明

支持功能

收费/免费

TinyPng

JPG:10

PNG:10

Maven引入

1. 网站在线压缩免费,单张,手工;

2. API接入,申请appid,每天50张免费,后续收费,实际是到远端rest调用

裁剪、压缩、水印等

每月500张免费;

500-10000:0.009$/张

>10000:0.002$/张

JDeli

JPG:10

PNG:9

Maven引入

本地SDK,直接调用,对PNG实际是用quant算法进行优化

裁剪、压缩、水印等

收费

Thumbnailator

JPG:9

Png:1

Maven引入

本地SDK,JPG压缩可以做到60%以上,可以控制压缩后分辨率是否变化

PNG不对位深做优化,压缩率一般20%以下甚至负优化

裁剪、压缩、水印等

免费

OpenViewer

PNG:9

JPG:1

Maven引入

1. 6.6.14版本中的image包,是抠了JDeli的代码,其它版本都没有,所以实际是收费软件的压缩效果;

2. 压缩后分辨率不变,降低位深方式降低PNG的存储空间

裁剪、压缩、水印等

免费

ImgProxy

NA

java私有化部署,http访问

主要是在图床上,resize会修改图片分辨率;怀疑网宿的resize功能应该是用的这个

不修改分辨率压缩效果一般

裁剪

免费

OpenCV

JPG:10

PNG:10

JNI调用

JNI调用,需要每台部署主机都安装opencv库

裁剪、压缩、水印等

免费

Pngquant

PNG:9

JNI调用

JNI调用,需要每台部署主机安装pngquant

压缩

免费

Aspose

JPG:9

PNG:1

Maven引入

类似thumbnailator,不过对有透明度的PNG压缩后会有黑底

裁剪、压缩、水印等

免费

考虑本次使用场景主要是尽量在保持分辨率的场景下减少图片存储空间,所以最终方案:

jpg使用thumbnailator压缩

png使用OpenViewer压缩

附:png压缩对比(0%说明是负优化,代码中对负优化的不压缩)

原始大小

thumbnalator

OpenViewerFX

tinypng

thumbnalator节省

OpenViewerFX节省

TinyPng节省

2,168,352

2,085,019

672,035

559,541

3.84%

69.01%

74.20%

2,181,431

2,181,431

594,118

520,370

0.00%

72.76%

76.15%

1,417,911

1,290,266

523,687

446,200

9.00%

63.07%

68.53%

1,253,352

1,110,166

441,109

447,969

11.42%

64.81%

64.26%

865,274

765,531

219,903

198,021

11.53%

74.59%

77.11%

834,557

780,779

265,746

230,452

6.44%

68.16%

72.39%

494,425

494,425

129,102

137,757

0.00%

73.89%

72.14%

84,612

84,612

26,110

24,128

0.00%

69.14%

71.48%

82,193

67,519

28,490

28,260

17.85%

65.34%

65.62%

3,853

3,853

2,242

1,436

0.00%

41.81%

62.73%

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值