一、目标

实现项目构建时图片的最优图片压缩方案

复制代码

二、对比常见的在线图片压缩工具

1. tinypng png 压缩率 66%;网站;一次可提供20张图片压缩,提供开发API需要申请免费key,每月可压缩500张图片。

2. 优图压缩 png 压缩率 -6%;网站;惊悚,压缩之后变大了。

3. 图好快 png 压缩率 79%;网站;提供免费API,但是限速,有点慢,vip充值可提高并发数,唯一好的是不限制压缩数量,但是价格也不便宜;界面丑,可能没前端

4. Optimizilla png 压缩率 68%;网站;支持中文,没有提供API,压缩速度很快体验和tinypng一样,卖广告,一次可提供20张图片压缩

5. 腾讯智图 png 压缩率35%; 网站;智图是腾讯ISUX前端团队开发的一个专门用于图片压缩和图片格式转换的平台,其功能包括针对png,jpeg,gif等各类格式图片的压缩,以及为上传图片自动选择最优的图片格式。同时,智图平台还会为用户转换一份webp格式的图片,网站不收费无广告不提供对外API但提供各种安装客户端,其实使用感觉一般。

建议使用:Optimizilla 或 tinypng 压缩几乎无损

还有很多其它一些:https://www.zhihu.com/question/19779256?sort=created

复制代码

三、webpack图片压缩plugin

image-webpack-loader 基于webpack的图片压缩工具,压缩方案采用 imagemin ,代码实现比较全面,支持 Minify PNG, JPEG, GIF, SVG and WEBP images 等,支持各个版本 webpack,github start 1625

imagemin-webpack-plugin 同上,写法和用法略有不同,github start 561

对比:相比较两者实现的处理流程不同,loader的方式是先找到图片压缩后再交给url-loader处理,plugin是在生成资源到 output 目录之前再来压缩,如果想图片base64或使用雪碧图插件可以用前者,后者的运用场景也能做雪碧图的压缩方案

复制代码

四、gulp图片压缩plugin

gulp-imageisux 来源于腾讯智图提供,其实是在线压缩,所有图片都要上传;github start 370

gulp-imagemin 基于imagemin系下的各类工具, github start 1688

复制代码

五、其它图片压缩相关工具

本地转换命令 tinypng 安装 tinypng-cli 传入申请的key

和文件,纯野生工具,在线压缩图片,使用tinypng服务,技术方案可参考

https://github.com/websperts/tinypng-cli github start 155

复制代码

六、基于webpack的图片压缩插件测试

通过测试比较 image-webpack-loader 和 imagemin-webpack-plugin

测试结果:

压缩效率都为 67% 左右和 tinypng 在线压缩数据一致

2. 压缩之后图片基本无损

3. 会导致webpack打包时间变长,两者效率一致

4. 可配置压缩质量 quality,设为75质量还是不错的,体积可再减小 15%

5. 观其代码发现图片资源都是本地压缩,安装各类图片的压缩工具

不足:两者都依赖几乎一样的图片压缩工具(C++扩展包),导致依赖下载时间过长,图片资源多打包时间也较长,影响发布

测试地址: https://github.com/xmyxm/webpack-imgmin.git

复制代码

七、Demo体验

我们选择常用的webpack插件来完成构建压缩:

1、安装与启动

yarn install

yarn start

复制代码

2、打包构建

yarn build:loader // 采用 image-webpack-loader 方案来打包

yarn build:plugin // 采用 imagemin-webpack-plugin 方案来打包

复制代码

八、图片转雪碧图再压缩方案(进阶)

webpack 图像压缩_基于webpack的图片压缩最佳方案相关推荐

  1. 基于奇异值分解的图片压缩

    基于奇异值分解的图片压缩 一.目的 在网络空间安全数学基础上,老师给出了一种基于奇异值分解的图片压缩办法.在本篇文章中,对此进行简单的实现. 二.简单的数学原理 step1:我们考虑一个 n * n ...

  2. git 创建webpack项目_使用webpack手动创建一个完整项目的全过程

    1.创建文件夹"webpack-study" 2.使用webstrom打开文件夹所在位置.在根目录上创建一个文件,文件命名为"src",在src文件下新建css ...

  3. 基于Plupload的图片压缩上传

    前言 这里的上传工具基于JQuery.Plupload 传送门:Plupload官方.中文文档 为什么要做图片压缩? 现在手机拍照都快10M了,但是有时候图片上传只要看得清楚就可以了,比如上传身份证2 ...

  4. java图片压缩不失真_软件分享 | Lit图片压缩

    软件分享 01 软件名称 Lit图片压缩 02 软件版本 V1.2.0.016 03 软件简介 Lit图片压缩app是一款免费简单好用的图片压缩工具,让图片在不失真的情况下,进行压缩和裁剪,轻松就能压 ...

  5. java图片管理系统_基于Java的图片管理信息系统的设计与实现

    收稿日期:2003 - 05 - 07 作者简介:谭 娜(1978 -) ,女 ,河南济源人 ,硕士研究生 ,主要研究方向为数据库理论与应用. 基于 Java 的图片管理信息系统的设计与实现 谭 娜1 ...

  6. iOS优秀的图片压缩处理方案

    大家好,好久没有更新博客了.一个早9晚5点半的硬是上成了996.悲剧的加班狗! 背景: 最近遇到一个图片压缩的问题,项目需求压缩图片500k以内上传服务器,还要求图片要清晰一点.还有证明是图片500k ...

  7. jsp给前端注入值失败_基于 qiankun 的微前端最佳实践(图文并茂) 应用间通信篇...

    引言 大家好~ 本文是基于 qiankun 的微前端最佳实践系列文章之 应用间通信篇,本文将分享在 qiankun 中如何进行应用间通信. 在开始介绍 qiankun 的应用通信之前,我们需要先了解微 ...

  8. 当下常用的webpack版本_细说 webpack系列 1. 为什么要选择 webpack

    大家好!我是萝卜,webpack作为目前最流行的构建工具,几乎成为前端同学武器库中必备的工具之一,写这个系列文章的用意就是想把自己在平时工作中使用webpack的一些经验和心得和大家分享,也是对自己这 ...

  9. 结合webpack配置_前端 Webpack 工程化的最佳实践

    作者 | 阿里文娱前端开发专家 芃苏责编 | 屠敏头图 | CSDN 下载自视觉中国 引言 ▐ 前端构建工具的演变 回想在2015-2016年的时候,开发者们开始渐渐把视线从大量使用Task Runn ...

  10. python如何爬取图片到指定文件夹论文_基于Python的图片爬虫程序设计

    互联网中包含大量有价值的 数据,网络爬虫通过既定规则可 以自动地抓取互联网数据并下载 至本地存储.研究网络爬虫的工 作原理和基于 Python 网络信息爬 取技术模块功能,基于 Requests- B ...

最新文章

  1. gcc可以编译python程序吗_gcc c语言编译流程
  2. Redis发布带有“流式”数据类型的5.0版本
  3. c语言大学程序设计题库,黑龙江大学C语言程序设计试题库程序单选
  4. Button.setOnClickListener(OnClickListener l) 原理
  5. 格式说明_法律文书:公司单位民事起诉状格式范本及说明,最高人民法院2016...
  6. 成功解决Exception unhandled OSError cannot open resource File: F:\Program Files\Python\Python36\Lib\si
  7. Keil5.26、Keil5.27、Keil5.30下载地址
  8. 算法基础:递归算法知识笔记
  9. 在.NET中把项目从类库转为Web应用程序
  10. android sendmessage和post的区别,Handler的sendMessage和postDelay的区别
  11. typora使用pandoc导出功能
  12. 解决AssetBundle包加载预制体时,Shader显示异常的问题
  13. 《矩阵与变换》教学中的几个“务必”
  14. 谷歌SEO是什么意思,谷歌搜索引擎优化怎么做
  15. gsp计算机设施设备表格,GSP计算机系统内审表.doc
  16. C语言入门教程,C语言学习教程
  17. 中国首台云电脑全面解析——天霆云计算董事长谈天霆专访
  18. 三星android q,三星Galaxy S11再被爆料 系统将基于Android Q
  19. 系统架构师论文-论软件设计模式的应用
  20. 与人工智能相关的创业公司或团队

热门文章

  1. 再说市场资金流向问题
  2. 01 unity初识和素材导入
  3. 项目管理 之一 软件开发生命周期(软件开发过程、瀑布模型、敏捷开发等)
  4. 根据银行卡号获取银行名称
  5. Mac:小米手机刷机
  6. gif透明背景动画_Gifox for Mac(Gif动画录制工具)
  7. Libmodbus 移植
  8. 你被选中了——晚会上的随机点名
  9. ExamDiff Pro(电脑文件对比工具)官方正式版V12.0.1.8 | 最好用的文件对比工具之一文件内容对比工具下载
  10. 数据恢复工具 winhex使用教程