• 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%

  • 相关阅读:
    (四)admin-boot项目之整合日志框架logback
    JavaScript学习之路---js基础(基本语法,认识js)
    1.34.FlinkX\工作原理\快速起步|1.35.Flink资料
    安卓手机格式化后怎么恢复
    图像处理之图像傅里叶变换
    antv-G6知识图谱安装--使用(实例)--连接线修改成动态,并添加跟随线移动的光圈,设置分支跟踪定位功能
    深度学习从入门到精通—Transformer
    二叉树 | 递归遍历 | leecode刷题笔记
    Spring Boot @Validated 和Javax的@Valid配合使用
    IDEA运行第一个Java简单程序(新建项目到运行类)
  • 原文地址:https://blog.csdn.net/coder_xia/article/details/131139963