1. #include <android/bitmap.h> 申明了与Bitmap和像素操作相关的三个函数:

文件位置:./frameworks/native/include/android/bitmap.h
(1)int AndroidBitmap_getInfo(JNIEnv* env, jobject jbitmap,AndroidBitmapInfo* info);

把上层传递的Bitmap对象转化为native的结构体信息AndroidBitmapInfo

(2)int AndroidBitmap_lockPixels(JNIEnv* env, jobject jbitmap, void** addrPtr);

锁定上层传递的Bitmap对象的像素在内存中的地址,确保在解锁定之前,该内存不会有任何变化。

(3)int AndroidBitmap_unlockPixels(JNIEnv* env, jobject jbitmap);

像素操作完毕后调用

 

2. bitmap.cpp 实现这三个函数的地方,实现使用了skia库,生成一个库文件,上层使用着三个函数需要引用这个库文件。

文件位置:

./frameworks/base/native/graphics/jni/bitmap.cpp

./frameworks/base/native/graphics/jni/Android.mk

生成

LOCAL_MODULE:= libjnigraphics

include $(BUILD_SHARED_LIBRARY)

相关文章:

  • 2021-08-24
  • 2021-11-11
  • 2022-12-23
  • 2021-11-22
  • 2022-01-09
  • 2021-10-16
  • 2021-07-25
猜你喜欢
  • 2021-11-19
  • 2021-11-19
  • 2022-12-23
  • 2021-11-02
  • 2021-08-30
  • 2022-12-23
  • 2021-06-18
相关资源
相似解决方案