1.什么是bitmap
bitmap可以理解为连续排列像素的二维数组。数组里面每个元素都是一个像素信息。 一个像素占了多少位,那么像素的色深就是多少。对于RGBA来说,像素的色深为32位。R、G、B、A分别占8位。每个像素的颜色信息可以用2的色深次方种表示方式。
2.为什么要用bitmap
因为一般从网络下载或者从磁盘加载得到的UIImage并没有经过解压缩并加载到内存。不能直接渲染在layer层上。 而bitmap是经过解压缩后的图片数据,所以需要经过解压缩成bitmap才可以。 PNG和JPG都只是一种图片的压缩格式而已,png是无损压缩,并且支持alpha通道,jpg是有损压缩,支持0~100的压缩比。 UIImage的渲染过程 中间对UIImage进行decode的时候,是一件在主线程并且很耗CPU的过程。
3.业界解决办法
不做处理的话,图片流的应用里大量加载图片时,会有大量工作在主线程进行,可能会造卡顿。 针对这个问题,一般业界都会在图片下载完成以后,提前解压缩并加载到内存,