(十七)WebP 的测试与使用

版权声明:本文为博主原创文章,未经博主允许不得转载。
本文纯个人学习笔记,由于水平有限,难免有所出错,有发现的可以交流一下。

一、WebP

1.什么是 WebP

WebP(发音 weppy),是一种同时提供了有损压缩与无损压缩(可逆压缩)的图片文件格式,派生自视频编码格式 VP8,被认为是 WebM 多媒体格式的姊妹项目,是由 Google 在购买 On2 Technologies 后发展出来,以 BSD 授权条款发布。

WebP 最初在2010年发布,目标是减少文件大小,但达到和 JPEG 格式相同的图片质量,希望能够减少图片档在网络上的发送时间。 2011年11月8日,Google 开始让 WebP 支持无损压缩和透明色(alpha 通道)的功能,而在 2012 年 8 月 16 日的参考实做 libwebp 0.2.0 中正式支持。根据 Google 较早的测试,WebP 的无损压缩比网络上找到的 PNG 档少了 45% 的文件大小,即使这些 PNG 档在使用 pngcrush 和 PNGOUT 处理过,WebP 还是可以减少 28% 的文件大小。

WebP 支持的像素最大数量是16383x16383。有损压缩的 WebP 仅支持 8-bit 的 YUV 4:2:0 格式。而无损压缩(可逆压缩)的 WebP 支持 VP8L 编码与 8-bit 之 ARGB 色彩空间。又无论是有损或无损压缩皆支持 Alpha 透明通道、ICC 色彩配置、XMP 诠释数据。

这是一段来自维基百科对 WebP 的介绍,简单的说,就是 WebP 比 PNG 等其他图片小得多
在这里插入图片描述

2.WebP 图片的生成

使用 AS 进行转换:

在 Android Studio 中,右键图片或文件夹,选择 Convert to WebP ,即可生成 WebP 图片。在 Android Studio 中,要使用 WebP ,需要 Android API 在 18 以上。
在这里插入图片描述
在这里插入图片描述
原先 6.6KB 的 JPG 图片转换成 WEBP 的图片,只有1.6 KB。这是非常可观的。

使用工具生成

使用 iSparta 进行转换,点击进行下载使用。(个人使用 win 10 笔记本,不知道什么原因,不能选择图片。所以就不再这边进行使用讲解。)

3.WebP 性能

这边使用 WEBP 格式与 JPEG 格式进行比较。

对同一张 png 图片进行编码生成不同 quality 的 WEBP 和 JPEG 图片,记录时间,然后把生成的图片在进行解码,记录时间,进行对比。
MainActivity:

public class MainActivity extends AppCompatActivity {

    private static final String TAG = "MainActivity";

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        Bitmap bitmap = BitmapFactory.decodeResource(getResources(), R.drawable.xiaoyue_png);

        compress(bitmap, Bitmap.CompressFormat.JPEG, 100);
        compress(bitmap, Bitmap.CompressFormat.JPEG, 70);
        compress(bitmap, Bitmap.CompressFormat.JPEG, 50);
        compress(bitmap, Bitmap.CompressFormat.JPEG, 30);
        compress(bitmap, Bitmap.CompressFormat.JPEG, 0);

        compress(bitmap, Bitmap.CompressFormat.WEBP, 100);
        compress(bitmap, Bitmap.CompressFormat.WEBP, 70);
        compress(bitmap, Bitmap.CompressFormat.WEBP, 50);
        compress(bitmap, Bitmap.CompressFormat.WEBP, 30);
        compress(bitmap, Bitmap.CompressFormat.WEBP, 0);
    }
    
    /**
     * 压缩图片到文件
     * @param bitmap 待压缩图片
     * @param format 压缩的格式
     * @param quality   质量
     */
    private void compress(Bitmap bitmap, Bitmap.CompressFormat format, int quality){

        String path;
   
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值