Bitmap图片那点事

Bitmap 在内存当中占用的大小影响因素

  1. 色彩格式,如果是 ARGB8888 那么就是一个像素4个字节,如果是 RGB565 那就是2个字节
  2. 原始文件存放的资源目录(是 hdpi 还是 xxhdpi 可不能傻傻分不清楚)
  3. 目标屏幕的密度(同等条件下,红米在资源方面消耗的内存是要小于三星S6的)
  4. 图片的像素宽高
    参考

图片格式大小及内存占用大小的差别

  1. 图片大小与内存占用大小的差别
    虽然JPG通常会比png文件size更小,但是读到内存中的大小并没有实质差别。
  1. Google全新的WebP格式
    WebP具有更优的图像数据压缩算法,能带来更小的图片体积,而且拥有肉眼识别无差异的图像质量;同时具备了无损和有损的压缩模式、Alpha 透明以及动画的特性,在 JPEG 和 PNG 上的转化效果都相当优秀、稳定和统一。参考
    相较于传统动态GIF/GIF/JPG/PNG,体积优势明显。
    WebP与其它格式文件对比

  2. GIF/JPG/PNG/WebP比较
    GIF是无损的,采用索引色的,点阵图。支持动画及透明度。
    JPG(JPEG)是有损的,采用直接色的,点阵图。无aplpha通道。jpg 的图像压缩算法比 png 耗时,这种编码适用于低对比,图像颜色过渡平滑,噪声多,且结构不规则的情况下。
    PNG-8是PNG的索引色版本,是无损的,采用索引色的,点阵图。支持透明度调节。
    PNG-24是PNG的直接色版本,是无损的,使用直接色的,点阵图。
    WebP是同时支持有损和无损压缩的,使用直接色的,点阵图。支持图片透明度。
    图片大小比较:通常地,PNG ≈ JPG > GIF > WebP
    参考

  3. 选择适合的图片压缩格式


    选择适合的图片压缩格式

Bitmap与Drawable

  1. 定义
    Bitmap存储图片的像素信息
    Drawable为抽象类,表示可被绘画的容器。Drawable具体实现的形式可以为:Bitmap/Nine/Shape/Layers/States/Levels/Scale。
  2. 转化
    BitmapDrawable是Drawable的具体实现类,可通过构造函数将Bitmap转成Drawable,也可从BitmapDrawable从获取Bitmap。
    参考

RGB(three-digit converted to six-digit)

(#f03) == (#ff0033)
expalain:The three-digit RGB notation (#rgb) is converted into six-digit form (#rrggbb) by replicating digits, not by adding zeros. For example, #fb0 expands to #ffbb00. This ensures that white (#ffffff) can be specified with the short notation (#fff) and removes any dependencies on the color depth of the display.

你可能感兴趣的:(Bitmap图片那点事)