当前网络中,图片仍是占用流量较大的一部分,在网站的视觉效果和加载速度之间,我们始终面临着两难选择。

一个网站的内容,不仅仅只有文字,图片、动图、视频等众多元素都在帮助用户从我们的网站获取更多的信息,当然,图片比起文字会消耗更多的网络资源,并且最令人担忧的是,它会增加网站的加载完成时间,影响用户体验。

为了在尽可能不影响图片质量的前提下压缩体积,谷歌公司在 2010 年提出了 WebP 格式。

有一些现实的问题摆在我们面前。

在互联网碎片化的大趋势下,相对于文字来说,大部分人会更愿意接受图片所传递的信息,因为看图总是那么的简单高效,我们不用花费那么多的脑细胞去咬文嚼字,然后还得加上自己的一丢丢想象力,才能勉强体会作者想要表达的意思,而看图片,会将这些信息直接灌输给我们的脑子,所有的信息都将会被传达。

问题也随之而来,当网站所展示的图片越多,加载速度则会越慢,这对于户外工作使用移动设备或者网络环境较差的用户来说则更为明显。

所以我们想尽办法去减少图片的体积,提升我们页面的速度,有时甚至会甘于冒着图片质量严重下降的风险,只是为了能够帮我们的用户节省一点带宽或者减少一点耗电量,但这种代价过于沉重,无论是对于搜索引擎还是用户来说,都太不友好了。在保证图片质量和网站速度之间,我们始终面临着两难选择。

WebP 格式

我们通常使用的图片格式有 JPG,JPEG 和 PNG,但现在,WebP 也逐渐发展成为大部分开发者乐于接受并使用的图片格式之一。如果你还没有听过 WebP,那也很正常,不可否认的是它现在仍然存在少部分浏览器的兼容性问题,但是就目前来说,谷歌,火狐,Edge 都已经支持了 WebP 格式。

使用 WebP 格式,可以将同等质量的 PNG 图片体积减少至 30%,而对比 GIF,WebP 则可以将体积减少约 30%,国外现在已经有取代 GIF 的趋势,这都还得从 WebP 的工作原理说起。

WebP 压缩方式使用帧内编码技术,并且基于像素块预测,帧内编码其实是一种视频压缩技术,像素块预测使用帧内相邻像素块的值进行预测,三个在上面,一个在左边,WebP 因此可以实现有损压缩,无损压缩,透明化和动图,并且体积还比 JPG,PNG 和 GIF 要小,优势不可谓不明显。

效果图

下面是使用 COS 数据处理的 WebP 压缩技术压缩 PNG 和 GIF 格式图像的效果对比图:

PNG 压缩为 WebP:图像体积减少 68.9%

GIF 压缩为 WebP:图像体积减少 67.14%

如图,WebP 图像压缩可以减少平均 70% 的图像大小,而且原图质量越高、越清晰,压缩收益率越大,一般压缩收益率在 35%-80%。

简单五步,得到 WebP 格式的图片

1、首先登录腾讯云对象存储:https://console.cloud.tencent.com/cos5

2、在存储桶列表中创建一个桶,然后进入桶内,并将提前准备好要进行转换的图片上传到桶中

3、等待上传完成后点击对象详情,点击复制临时链接

4、粘贴到浏览器,腾讯云 COS 数据处理通过 imageMogr2 接口提供格式转换,所以我们在 url 后面拼上参数 &imageMogr2/format/webp

5、然后访问,就可以得到 WebP 图片了

当然,你也可以直接体验功能:https://cloud.tencent.com/act/pro/cosExhibition

COS 数据处理文档链接:https://cloud.tencent.com/document/product/460/36543

使用 WebP 的好处显而易见,图片加载变快,网页也随之变快,即使图片体积较小,也不会影响视觉效果,我们可以添加更多的图片来引人入胜,传递更多的信息,从而提高用户体验,提高点击率,与之呼应的是,我们的页面在搜索引擎的排名也会越来越高,形成一个良好的循环。简简单单地在图片链接后面拼上参数 &imageMogr2/format/webp,仅仅是变换了一个小小的图片格式,就像是南美洲亚马逊河热带雨林中的一只蝴蝶扇动了几下翅膀,却能在美国德克萨斯州引起一场龙卷风。

COS数据处理WebP压缩 | 减少70%图像大小的更多相关文章

  1. 如何在 HTML 中调整图像大小?

    了解在 HTML 中调整图像大小的不同技术.何时应避免在浏览器端调整大小,以及在 Web 上操作和提供图像的正确方法. 如果您的图像不适合布局,您可以在 HTML 中调整其大小.在 HTML 中调整图 ...

  2. 前端性能优化成神之路—资源合并与压缩减少HTTP请求

    资源合并与压缩减少HTTP请求的概要 资源合并与压缩减少HTTP请求主要的两个优化点是减少HTTP请求的数量和减少请求资源的大小 http协议是无状态的应用层协议,意味着每次http请求都需要建立通信 ...

  3. C#中如何调整图像大小

    在本篇文章中,我将介绍如何在C#中来调整你想要的图像大小.要实现这一目标,我们可以采取以下几个步骤: 1.首先要获取你想要调整大小的图像: string path = Server.MapPath(& ...

  4. [译]Android调整图像大小的一些方法

    翻译自 某大神在Stack Overflow里的自问自答 (一般我们将Bitmap翻译为位图,但为了更好理解,在本文中我将它翻译成图像): 我们在开发的时候,经常需要从服务器中加载图像到客户端中,但有 ...

  5. LVM管理之减少LV的大小

    LVM管理之减少LV的大小 规定动作 1.umount filesystem 2.e2fsck filesystem 3.resize2fs filesystem 4.lvredure 实例演示——— ...

  6. CSS 图像大小

    CSS 图像大小 虽然在HTML中,img标签有属性height.width设置高和宽,在工作中却使用得非常少,通常使用CSS来控制大小. 给盒子设置属性height.width限制大小.单位通常是像 ...

  7. Matlab绘图基础——图形绘制的插值  以及 图像大小的重采样

    使用说明:图形绘制时的插值 interp1   %1-D data interpolation interpft  %使用fft算法插值     %将原数据x转换到频率域,再逆转换回来更密集的数据采样 ...

  8. AForge,Emgu.CV抓拍图像大小

    原文:AForge,Emgu.CV抓拍图像大小 2017年,忙忙碌碌地过去了,象往年一样,依然没有时间上CSDN,博客园. 这一年是打工以来最辛苦的一年. 这一年用了不少自己没有接触过的东西.如人脸识 ...

  9. [RN] React Native 打包时 减少 Apk 的大小

    React Native 打包时 减少 Apk 的大小 主要有两个方法: 在打包前设置 android\app\build.gradle 文件中 1) def enableProguardInRele ...

随机推荐

  1. windows中关闭端口的方法

    打开cmd:输入-ano | findstr "端口号" 控制台会输出占用端口的pid 如"8380" 再向cmd中输入 taskkill /f/pid 838 ...

  2. Hbase性能调优(二)

    一.HBase关键参数配置指导 如果同时存在读和写的操作,这两种操作的性能会相互影响.如果写入导致的flush和Compaction操作频繁发生,会占用大量的磁盘IO操作,从而影响读取的性能.如果写入 ...

  3. linux IP 注释

    DEVICE=name,这里name是物理设备的名字(动态分配的PPP设备应当除外,它的名字是"逻辑名". IPADDR=addr, 这里addr是IP地址. NETMASK=ma ...

  4. 阿里云centos7[linux]安装nginx

    标题 说明 服务器版本 Centos7 x64 nginx版本 1.19.6 作者 walton 一.准备 创建安装包目录并进入 mkdir /usr/dev/nginx cd /usr/dev/ng ...

  5. Mac最新Flutter环境搭建运行和对比理解声明式UI

    前言 这段时间一直都在学习和写关于SwiftUI的东西,前面也总结了四篇文章来大体上说了下Demo中功能实现的一些细节,后面准备开始了解学习一下Flutter,争取在年前能再用Flutter写一份项目 ...

  6. 死磕以太坊源码分析之state

    死磕以太坊源码分析之state 配合以下代码进行阅读:https://github.com/blockchainGuide/ 希望读者在阅读过程中发现问题可以及时评论哦,大家一起进步. 源码目录 |- ...

  7. 10步写了个Django网站,正经网站···

      Django做网站只要10步,真的只有10步,不信?咱们来数数--   今天主要讲解用Pycharm编辑器搭建网站,网站功能是 实现在局域网中快速传递大文件! 比如:同事要给你个1G的文件,你丢一 ...

  8. 【C++】《Effective C++》第六章

    第六章 继承与面向对象设计 条款32:确定你的public继承塑模出is-a关系 public隐含的寓意:每个派生类对象同时也是一个基类对象,反之不成立.只不过基类比派生类表现出更一般化的概念,派生类 ...

  9. Java向指定Excel写入读取数据

    今天在开发中遇到用户列表导入导出的功能实现,这里了解到使用POI函数库可以完成此任务!特此记录一下 POI Apache POI是Apache软件基金会开放的源码函数库,POI提供API给Java程序 ...

  10. 目录遍历 - Pikachu

    概述: 在web功能设计中,很多时候我们会要将需要访问的文件定义成变量,从而让前端的功能便的更加灵活. 当用户发起一个前端的请求时,便会将请求的这个文件的值(比如文件名称)传递到后台,后台再执行其对应 ...