Bitmap 图像原理-学习总结

重要概念:
bitmap 生成过程:BitmapFactory (java-cpp-skia-bitmap)
inSampleSize:缩小的倍数
BitmapFactory.Options.inBitmap 字段 :decode过程中重用

分辨率是每英寸表示的像素点数量:每个像素点可以由多种色彩表示,包括2、4、8、16、24和32位色彩。
像素不是画质,根本只是决定清晰度的一个条件之一
色深是2的幂指数,是颜色深度,也是决定清晰度条件之一

坑点:
  • api25,手动GC或者调用程序释放掉,并未生效,在下一次生成图像申请内存的时候,在释放掉上一次申请的内存。
Recycle 释放的原理:
api<2.3.3 采用引用计数
api>2.3.3 采用bitmapShader,才用的图片释放方法

  • 屏幕大小相同,分辨率相同,在屏幕中效果是否相同?? 像素点相同, 像质可能不同,因为色深不一定相同。
  • 尺寸太大的切图,会出现OOM,标准的解决方法
1 、
public static Bitmap createdBitMap(View view) {
Bitmap bitmap = null;
if (view != null ){
bitmap = Bitmap.createBitmap(view.getWidth() , view.getHeight() , Bitmap.Config.RGB_565) ;
view.draw( new Canvas(bitmap)) ;
}
return bitmap ;
}

2种方法可以生成bitmap
layout ->bitmap
View -> bitmap

遗留的问题:
BitmapShader如何渲染圆角图片,圆角图片渲染原理?

参考资料:
1 图片压缩原理: http://blog.csdn.net/u012416928/article/details/41542695
https://github.com/kesenhoo/android-training-course-in-chinese/tree/master/graphics/displaying-bitmaps  

你可能感兴趣的:(Bitmap 图像原理-学习总结)