大家好,又见面了,我是你们的朋友全栈君。
最近我有遇到一个很奇怪的问题
因为我不是转用 Apple Music 本地化听歌了?
所以很多歌的歌曲信息都是我自己补充的,当然也包括封面
但我在用 iTunes 把歌传到 iPhone 上来听的时候,有首歌的封面怎么都同步不过来
我来回同步了几遍,还重新连接了几次,甚至换回了有线来同步,这个封面始终都还是同步不上…
我就一直奇了怪了
直到我想重新编辑一下封面,重新添加,我才发现…
好家伙,一张封面竟然有18M!?比我MP3本身都要大了,难怪我添加不上呢
完全被它小小的外表给欺骗了
我后来把图片一压缩,这个问题自然就轻松迎刃而解了
因为很少碰到这么大一张的图片,阿虚平时其实也很少会去做图片压缩,但既然碰到了这个问题,我还是就准备好好研究一下图片压缩
毕竟每次要是遇到问题,你不一次性好好把它解决,那么下次再遇到的时候,又会重复的浪费你时间
▍1 简单介绍一下图片格式
而要说图片压缩最简单的方式呢,应该就是改图片格式了
无需任何压缩软件,阿虚直接把这张 .png 图片,另存为 .jpg 格式后,立马大小被压缩到了7.8MB
不同的图片格式极大程度的影响着图片的文件大小,所以要谈图片压缩,必须得先了解一下图片格式
● 1.1 关于图片格式你需要了解的
下图左这张照片由互联网之父「蒂姆·博纳斯·李」的同事希尔瓦诺于1992年7月18日拍摄
当时欧洲核子研究中心组织了一次音乐会的活动,希尔瓦诺在后台遇到了一支参加演出的女子乐队,然后就给她们拍下了这张合影
而在蒂姆和他的团队完成了支持图片文件的新版万维网建设之后,他正好看到希尔瓦诺在电脑上用Photoshop处理这张图片,于是就要了一张
然后,这张图片就成了一张被上传到互联网的图片,图片格式为GIF
GIF图片格式于1987 年诞生,常用于网页动画,使用无损压缩,支持 256 种颜色,支持单一透明色
是的,虽然如今你看到的很多动图可能糊的一比,但GIF的确是无损压缩☝
GIF看起来糊的更多原因是其只支持 256 种颜色,明显完全不足以表现真实世界的色彩,色彩单一的GIF如今着实比较少见
而具体来讲,图片的压缩分为有损压缩和无损压缩两种:
「有损压缩」指在压缩文件大小的过程中,损失了一部分图片的信息,也即降低了图片的质量,并且这种损失是不可逆的
举个简单的例子:BMP、PNG都是无损压缩格式,而JPEG是有损压缩格式。BMP与PNG互相转格式的话,是不会损失图片质量的,而如果你是把PNG转为JPEG格式,就会造成图片质量损失,就算再从JPEG格式转回PNG格式,也不能恢复图片质量了(不少网站对上传的图片都会进行压缩,所以JPEG格式容易存在越传越糊的情况)
「无损压缩」指在压缩文件大小的过程中,图片的质量没有任何损耗。我们任何时候都可以从无损压缩过的图片中恢复出原来的信息
我们如今用的最多的JPEG标准和PNG格式,分别于1992年和1996年问世,两个都有20多年的历史了
JPEG是在「文件大小与质量之间平衡做的非常好」的标准,而PNG则是在无损压缩上表现的很优秀
当然,技术其实一直在革新,不断有新的图片格式在被提出
2004年APNG格式诞生、2010年WebP被发明、2015年HEIF(后缀为.heic)被正式定义、2018年底第一张AVIF图片发布…
虽然这些格式各有优点,但也各有各的缺点,也导致这些格式并没有广泛流行起来
- APNG虽然支持动态图,且目前不少浏览器已经支持显示了,但在移动端、软件端存在较大的兼容性问题(APNG动图无法在软件端查看)
- WebP虽然同时具备了无损和有损的压缩模式,且在无损压缩上压缩率比PNG还要高,经过其几年的发展,不少互联网也转开始使用这个格式来降低流量消耗,但其应用场景始终比较限于浏览器,WebP动图也难以在浏览器以外的地方进行查看、编辑、分享,不过如果你是站长,可以多考虑一下WebP格式,WebP虽然在本地端兼容性不好,但在网页上已经得到了广泛的支持,网站图片替换为WebP格式是有效节约网站流量的方式
- HEIF目前无任何浏览器支持,这使得其基本上成为了只能在iOS设备上本地查看或编辑的图片格式(虽然现在部分相机也开始支持这个格式),但对大众来说的确不适合作为图片压缩的考虑
- AVIF虽然被定义为「下一代图像编码算法」,被很多人认为是取代 JPEG 格式的最佳选择,但其目前发展速度依然较缓慢,浏览器的支持不全,同时各种网站也不支持上传
如果准备通过转格式来压缩图片,目前的重点依旧还是放在对 GIF、JPEG 和 PNG 的压缩上
▍2 GIF压缩
由于GIF压缩比较特殊哈,就单独先讲这个
不过阿虚原来其实有专门写过GIF压缩,所以这里就不复述了:https://mp.weixin.qq.com/s/0bjuF6Os5KaDhOR80PDRlQ
想要对 GIF 进行有效压缩,你最好还是得知道一些GIF的原理,与常用的压制手段
● 2.1 EZGIFCOM
但这里准备对上文进行一点补充说明
EZGIFCOM这个网站:https://ezgif.com/optimize
依旧是阿虚经常用的 GIF 压缩网站——它提供的减帧的功能在GIF压缩中实在过于常用
不过之前的文章没有说该怎么样正确使用这个网站,所以这里录了一个例子——我是怎么把一个20MB的GIF压缩到1MB的
我在EZGIFCOM上连续进行了3个操作:减少一半的帧数 » 减少一半的尺寸 » 减少一半的图片质量
就这样我把一个20MB的GIF图成功压缩到了1MB,即下图
● 2.2 docsmall
而如果要追求小白一键化,我现在反倒更喜欢用下面这个网站了(原来推荐的是软件「PP鸭」)
地址:https://docsmall.com/gif-compress
网站非常干净简洁,最多同时处理30个文件!而且最大支持处理25M的动图!
4个压缩梯度可选,还可随意调整压缩尺寸比例(尺寸真的非常影响GIF图大小!)
▍3 JPG&PNG相关说明
GIF压缩说完了,然后再来讲JPG&PNG格式图片的压缩吧
不过我认为对这两种格式进行科普是有必要进行的一个环节??
● 3.1 关于JPG图片
JPEG 是一个压缩标准,而 .jpg 是文件扩展名,其正式扩展应该名是 .jpeg
当初因为 DOS、Windows 95等早期系统采用的8.3命名规则,只支持最长3字符的扩展名,为了兼容,所以后缀名采用了.jpg(也有.jpe)
由于历史习惯和兼容性考虑,.jpg 这个扩展名反倒比正式扩展名更流行
另外,最近可能有些粉丝发现WIN10把默认图片保存格式从 .jpg 变成 .jfif
其实 .jfif 也属于JPEG标准,不过由于很多网站、软件在上传、导入文件时限制了文件扩展名,所以容易遇到无法上传&导入的问题
解决办法其实很简单,改个后缀名即可,改成 .jpg
● 3.2 关于PNG图片
PNG 图片主要有三个类型,分别为 PNG-8 和 PNG-24、PNG-32
需要说一下的是 PNG-8
PNG-8 中的 8,其实指的是 8bits,相当于用 2⁸ 大小来存储一张图片的颜色种类,2⁸ = 256,也就是说 PNG 8 能存储 256 种颜色(和GIF一样),你可以大概把它等价成单帧 GIF
而大多数情况下你的 PNG 都是 PNG-24,如果有透明色,通常则是PNG-32(后者更占空间)
关于PNG还 有一点要说明的是PNG比较适合适量图、几何图
颜色越单一越少的图片,采用PNG格式,通常会比用JPEG格式体积更小!?
然后PNG这种图片格式虽然是无损压缩的,但不代表它的文件大小不能被压缩
知名PNG压缩网站 tniyPNG 说明过它的压缩原理:是把相似像素的 24 bit 位用 8bit 位来表示,并且移除了不必要的元数据,是有损压缩,不过肉眼很难看出来
其他的PNG压缩工具也是类似的原理
▍4 JPG&PNG相关压缩工具
JPG&PNG相关压缩工具真的很多,而且压缩效果你真的很难比哪个最好
毕竟肉眼真的很难看出压缩前后的区别…
● 4.1 网站
在线图片压缩网站实在过多,阿虚就不详细介绍了
不经常进行图片压缩的话,以下网站完全足够解决问题了:
- ?Squoosh(谷歌旗下):https://squoosh.app/
- ?文思齐远图片压缩(上面网站的中文版):https://www.i847.cn/yasuo/index.html
- ?docsmall:https://docsmall.com/image-compress(最多一次性30张照片,最大25MB)
- ?TinyPng:https://tinify.cn/(算法优秀,全球知名,最多一次性20张照片,最大5MB)
- Recompressor:https://zh.recompressor.com/(压缩之后提供「多种压缩大小后的图片」下载,但这也致使压缩效率有点慢)
- Optimizilla:https://imagecompressor.com/zh/(最多一次性20张照片)
- VeImageX体验版:http://imagexdemo.volcengine.com/(可同时查看多种格式下的压缩效果)
- NiaoAPI:http://www.niaoapi.com/compress/png
- img.top:https://img.top/(最大5MB)
● 4.2 软件
❶图压(WIN/Mac)
开源、免费的优秀图片压缩软件,支持JPEG,PNG,WebP三种格式的压缩与转换
可以快速进行二压,并可以设置压缩强度、文件大小,轻松满足多种状况下的压缩目的?
❷Imagine(WIN/Mac/Linux)
一样开源、免费的图片压缩软件,支持Linux,操作友好,支持JPEG,PNG,WebP三种格式的压缩与转换
官网:https://github.com/meowtec/Imagine
PS:Github目前处于半墙状态,访问不了的话,建议了解《Github加速下载教程》
❸ImageOptim(Mac)
Mac上颇受好评的图片压缩软件,免费,开源,集成多种图片压缩算法,会自动选择压缩比最高的算法组合,支持 PNG、JPG、GIF 格式的图片压缩优化
注意应用商店中的是盗版,这个软件没有上架应用商店,务必到官网下载:https://imageoptim.com/mac
❹智图(WIN/MAC)
腾讯 ISUX 前端团队开发,原本是有网页版的,不知道为什么现在不提供服务了
另外测试发现似乎限制5MB文件,而且转换需要将图片进行上传,所以整体而言不是很推荐
但是这款软件支持在压缩的同时生成 webP 格式图片,算是一个优势吧
其实还有像 RIOT、Caesium、ImageAlpha、JPEGmini、PP鸭这些软件,或多或少存在无汉化、界面复杂、支持格式有限、激活码贵的问题,就不予以推荐了
其实真要把图片压缩写清楚的话,背后涉及的历史、原理啥的真的太多了
阿虚几番思索之后还是觉得这类问题追求实用就好
工具是为了帮助我们解决问题,提高效率的,能理解原理很好
但duck不必死磕原理
发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/150429.html原文链接:https://javaforall.cn
【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛
【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...