[关闭]
@946898963 2020-03-10T21:11:32.000000Z 字数 1392 阅读 1605

Bitmap.CompressFormat

Bitmap


图片可以由很多种格式构成,比如png、jpeg、webp格式等等。Android中Bitmap的格式是通过Bitmap.CompressFormat这个枚举类进行描述的。以下是CompressFormat的源码:

  1. // 设置压缩格式类型
  2. public enum CompressFormat {
  3. JPEG (0),
  4. PNG (1),
  5. WEBP (2);
  6. CompressFormat(int nativeInt) {
  7. this.nativeInt = nativeInt;
  8. }
  9. final int nativeInt;
  10. }
  • PNG格式

表示以PNG压缩算法进行图像压缩,压缩后的格式可以是".png",是一种无损压缩。

全称:便携式网络图形(Portable Network Graphics,PNG),它是一种无损压缩的位图图形格式,支持索引、灰度、RGB三种颜色方案以及Alpha通道等特性。最高支持1600万色,支持全透明/半透明,也包括复杂的图片透明。它的最大特点应该就是无损压缩,这也使得它拥有丰富的颜色显示效果,即使在压缩情况下也能做到不降低图像质量。

  • JPEG格式

表示以JPEG压缩算法进行图像压缩,压缩后的格式可以是".jpg"或者".jpeg",是一种有损压缩。

全称:(Joint Photographic Experts Group,JPEG)联合图像专家组的英文缩写,这个我们不用管它。我们在计算机中通常看到的是.JPG的后缀名文件,其实就是它的缩写格式。这是因为在很久以前计算机有这样一个规定,只用3位保存后缀名格式。JPEG是一个压缩标准,又可分为标准JPEG、渐进式JPEG及JPEG2000三种,那么这三种又有很大的区别:

标准JPEG:支持最高级别的压缩,但是压缩是有损耗的。此类型图片在网页下载时只能由上而下依序显示图片,直到图片资料全部下载完毕,才能看到全貌。

渐进式 JPEG:标准JPEG的改良格式,可以在网页下载时,先呈现出图片的粗略外观后,再慢慢地呈现出完整的内容,渐进式JPG的文件比标准JPG的文件要来得小。

JPEG2000:新一代的影像压缩法,压缩品质更好,其压缩率比标准JPEG高约30%左右,同时支持有损和无损压缩。一个极其重要的特征在于它能实现渐进传输,即先传输图像的轮廓,然后逐步传输数据,让图像由朦胧到清晰显示。

  • WEBP格式

表示以WebP压缩算法进行图像压缩,压缩后的格式可以是".webp",是一种有损压缩,质量相同的情况下,WebP格式图像的体积要比JPEG格式图像小40%。美中不足的是,WebP格式图像的编码时间“比JPEG格式图像长8倍”。

WebP格式,Google在2010年推出的新一代图片格式,也是Google开发的一种旨在加快图片加载速度的图片格式。图片压缩体积大约只有JPEG的2/3,并能节省大量的服务器宽带资源和数据空间。WebP既支持有损压缩也支持无损压缩。相较编码JPEG文件,编码同样质量的WebP文件需要占用更多的计算资源。

谷歌浏览器已经支持webp格式,Opera在版本号Opera11.10后也增加了支持,然而火狐和ie暂时还不支持webp格式。当然,Android系统也已经支持了,IOS还尚未支持。

参考链接:

Bitmap.Config 属性详解及不同格式图片区别介绍

Android Bitmap最全面详解

添加新批注
在作者公开此批注前,只有你和作者可见。
回复批注