Bitmap
摘要
类型定义 (Typedefs) |
|
---|---|
AHardwareBuffer
|
类型定义结构体 AHardwareBuffer
|
AndroidBitmap_CompressWriteFunc)(void *userContext, const void *data, size_t size)
|
类型定义bool(*
用于写入压缩输出的用户定义函数。 |
函数 (Functions) |
|
---|---|
AndroidBitmap_compress(const AndroidBitmapInfo *info, int32_t dataspace, const void *pixels, int32_t format, int32_t quality, void *userContext, AndroidBitmap_CompressWriteFunc fn)
|
int
按照
info 的描述压缩 pixels 。 |
AndroidBitmap_getDataSpace(JNIEnv *env, jobject jbitmap)
|
int32_t
给定一个 java bitmap 对象,返回其 ADataSpace。
|
AndroidBitmap_getHardwareBuffer(JNIEnv *env, jobject bitmap, AHardwareBuffer **outBuffer)
|
int
检索与 HARDWARE Bitmap 相关的原生对象。
|
AndroidBitmap_getInfo(JNIEnv *env, jobject jbitmap, AndroidBitmapInfo *info)
|
int
给定一个 java bitmap 对象,为其填充 AndroidBitmapInfo 结构体。
|
AndroidBitmap_lockPixels(JNIEnv *env, jobject jbitmap, void **addrPtr)
|
int
给定一个 java bitmap 对象,尝试锁定像素地址。
|
AndroidBitmap_unlockPixels(JNIEnv *env, jobject jbitmap)
|
int
调用此函数以平衡对 AndroidBitmap_lockPixels 的成功调用。
|
结构体 (Structs) |
|
---|---|
AndroidBitmapInfo |
Bitmap 信息,请参阅 AndroidBitmap_getInfo()。 |
枚举
匿名枚举 21
在android/bitmap.h
中声明
Anonymous Enum 21
AndroidBitmap 函数结果代码。
属性 (Properties) | |
---|---|
ANDROID_BITMAP_RESULT_ALLOCATION_FAILED |
分配失败。 |
ANDROID_BITMAP_RESULT_BAD_PARAMETER |
参数错误。 |
ANDROID_BITMAP_RESULT_JNI_EXCEPTION |
发生 JNI 异常。 |
ANDROID_BITMAP_RESULT_SUCCESS |
操作成功。 |
匿名枚举 22
在android/bitmap.h
中声明
Anonymous Enum 22
Bitmap alpha 格式。
属性 (Properties) | |
---|---|
ANDROID_BITMAP_FLAGS_ALPHA_MASK |
用于隔离 alpha 的 AndroidBitmapFormat.flags 位掩码。 |
ANDROID_BITMAP_FLAGS_ALPHA_OPAQUE |
像素不透明。 |
ANDROID_BITMAP_FLAGS_ALPHA_PREMUL |
像素分量已预乘 alpha。 |
ANDROID_BITMAP_FLAGS_ALPHA_SHIFT |
用于隔离 alpha 的 AndroidBitmapFormat.flags 偏移。 |
ANDROID_BITMAP_FLAGS_ALPHA_UNPREMUL |
像素分量与 alpha 无关。 |
匿名枚举 23
在android/bitmap.h
中声明
Anonymous Enum 23
属性 (Properties) | |
---|---|
ANDROID_BITMAP_FLAGS_IS_HARDWARE |
如果在 AndroidBitmapInfo.flags 中设置此位,则 Bitmap 使用 HARDWARE Config,并且可以通过 AndroidBitmap_getHardwareBuffer 检索其 AHardwareBuffer。 |
AndroidBitmapCompressFormat
在android/bitmap.h
中声明
AndroidBitmapCompressFormat
指定可以使用 AndroidBitmap_compress 压缩到的格式。
属性 (Properties) | |
---|---|
ANDROID_BITMAP_COMPRESS_FORMAT_JPEG |
压缩为 JPEG 格式。 质量为 0 表示压缩到最小尺寸。100 表示压缩到最大视觉质量。 |
ANDROID_BITMAP_COMPRESS_FORMAT_PNG |
压缩为 PNG 格式。 PNG 是无损格式,因此质量被忽略。 |
ANDROID_BITMAP_COMPRESS_FORMAT_WEBP_LOSSLESS |
压缩为 WEBP 无损格式。 质量是指压缩所需投入的精力。值为 0 表示快速压缩,导致文件大小相对较大。100 表示花费更多时间压缩,导致文件较小。 |
ANDROID_BITMAP_COMPRESS_FORMAT_WEBP_LOSSY |
压缩为 WEBP 有损格式。 质量为 0 表示压缩到最小尺寸。100 表示压缩到最大视觉质量。 |
AndroidBitmapFormat
在android/bitmap.h
中声明
AndroidBitmapFormat
Bitmap 像素格式。
属性 (Properties) | |
---|---|
ANDROID_BITMAP_FORMAT_A_8 |
Alpha: 8 位。 |
ANDROID_BITMAP_FORMAT_NONE |
无格式。 |
ANDROID_BITMAP_FORMAT_RGBA_1010102 |
红色: 10 位,绿色: 10 位,蓝色: 10 位,Alpha: 2 位。 |
ANDROID_BITMAP_FORMAT_RGBA_4444 |
在 API 级别 13 中已弃用。 由于此配置质量较差,建议改用 ARGB_8888。 |
ANDROID_BITMAP_FORMAT_RGBA_8888 |
红色: 8 位,绿色: 8 位,蓝色: 8 位,Alpha: 8 位。 |
ANDROID_BITMAP_FORMAT_RGBA_F16 |
每个分量存储为半浮点数。 |
ANDROID_BITMAP_FORMAT_RGB_565 |
红色: 5 位,绿色: 6 位,蓝色: 5 位。 |
类型定义 (Typedefs)
AHardwareBuffer
在android/bitmap.h
中声明
struct AHardwareBuffer AHardwareBuffer
AndroidBitmap_CompressWriteFunc
在android/bitmap.h
中声明
bool(* AndroidBitmap_CompressWriteFunc)(void *userContext, const void *data, size_t size)
用于写入压缩输出的用户定义函数。
自 API 级别 30 起可用。
详细信息 | |||||||
---|---|---|---|---|---|---|---|
参数 |
|
||||||
返回值 |
操作是否成功。
|
函数 (Functions)
AndroidBitmap_compress
在android/bitmap.h
中声明
int AndroidBitmap_compress( const AndroidBitmapInfo *info, int32_t dataspace, const void *pixels, int32_t format, int32_t quality, void *userContext, AndroidBitmap_CompressWriteFunc fn )
按照 info
的描述压缩 pixels
。
自 API 级别 30 起可用。
详细信息 | |||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
参数 |
|
||||||||||||||
返回值 |
AndroidBitmap 函数结果代码。
|
AndroidBitmap_getDataSpace
在android/bitmap.h
中声明
int32_t AndroidBitmap_getDataSpace( JNIEnv *env, jobject jbitmap )
给定一个 java bitmap 对象,返回其 ADataSpace。
请注意,ADataSpace 仅公开了少数几个值。即使对于命名颜色空间,如果它们没有对应的 ADataSpace,此函数也可能返回 ADATASPACE_UNKNOWN。
自 API 级别 30 起可用。
AndroidBitmap_getHardwareBuffer
在android/bitmap.h
中声明
int AndroidBitmap_getHardwareBuffer( JNIEnv *env, jobject bitmap, AHardwareBuffer **outBuffer )
检索与 HARDWARE Bitmap 相关的原生对象。
当 Bitmap 正在封装它时,客户端不得修改它。
自 API 级别 30 起可用。
详细信息 | |||||||
---|---|---|---|---|---|---|---|
参数 |
|
||||||
返回值 |
AndroidBitmap 函数结果代码。ANDROID_BITMAP_RESULT_BAD_PARAMETER 如果 bitmap 不是 HARDWARE Bitmap。
|
AndroidBitmap_getInfo
在android/bitmap.h
中声明
int AndroidBitmap_getInfo( JNIEnv *env, jobject jbitmap, AndroidBitmapInfo *info )
给定一个 java bitmap 对象,为其填充 AndroidBitmapInfo 结构体。
如果调用失败,则 info 参数将被忽略。
AndroidBitmap_lockPixels
在android/bitmap.h
中声明
int AndroidBitmap_lockPixels( JNIEnv *env, jobject jbitmap, void **addrPtr )
给定一个 java bitmap 对象,尝试锁定像素地址。
锁定将确保像素的内存不会移动,直到调用 unlockPixels,并确保如果像素先前已被清除,它们将被恢复。
如果此调用成功,则必须通过调用 AndroidBitmap_unlockPixels 进行平衡,在此之后,像素的地址不应再使用。
如果成功,*addrPtr 将设置为像素地址。如果调用失败,则 addrPtr 将被忽略。
AndroidBitmap_unlockPixels
在android/bitmap.h
中声明
int AndroidBitmap_unlockPixels( JNIEnv *env, jobject jbitmap )
调用此函数以平衡对 AndroidBitmap_lockPixels 的成功调用。