Native Image模块API-OH_PixelMap_InitNativePixelMap

https://developer.huawei.com/consumer/cn/doc/harmonyos-references/image-0000001774121838调用Native Image模块的OH_PixelMap_InitNativePixelMap函数,想初始化一个NativePixelMap对象。

发现一个问题:传入一个RGBA的图像数据,会得到一个BGRA的图像,传入BGRA会得到RGBA的图像。实际上传入RGBA的数据,想得到的是RGBA的图像。

没看到有相应的参数控制,有没有解决。

Native C++开发,想拷贝一份NativePixelMap对象。

HarmonyOS
2024-05-08 23:29:46
浏览
收藏 0
回答 1
待解决
回答 1
按赞同
/
按时间
wjmfzsz

可以通过设置OhosPixelMapCreateOps 中的info参数即可:

napi_value CreatePixelMaptest(napi_env env, napi_callback_info info) { 
napi_value udfVar = nullptr; 
napi_value pixelmap = nullptr; 
 
struct OhosPixelMapCreateOps createOps; 
createOps.width = 4; 
createOps.height = 6; 
createOps.pixelFormat = 3; // 设置为3,图片格式为RGBA,设置为4,图片格式为BGRA 
createOps.alphaType = 0; 
size_t bufferSize = createOps.width * createOps.height * 4; 
void *buff = malloc(bufferSize); 
 
int32_t res = OH_PixelMap_CreatePixelMap(env, createOps, (uint8_t *)buff, bufferSize, &pixelmap); 
if (res != IMAGE_RESULT_SUCCESS || pixelmap == nullptr) { 
return udfVar; 
} 
return pixelmap; 
}

可以通过调整demo中createOps.pixelFormat的值修改图像数据的格式,若设置为3,图片格式为RGBA;设置为4,图片格式为BGRA。

关于OhosPixelMapCreateOps更详细的内容可以参考文档:https://developer.huawei.com/consumer/cn/doc/harmonyos-references/_ohos_pixel_map_create_ops-0000001820881505

分享
微博
QQ
微信
回复
2024-05-09 14:38:01
相关问题
Native Image模块API-OH_PixelMap_CreatePixelMap
135浏览 • 1回复 待解决
OH_AudioStreamBuilder_SetRendererInfo的用处
139浏览 • 1回复 待解决
OH _Audio播放音频问题
139浏览 • 1回复 待解决
PixelMap怎么转Base64?(非Java)
732浏览 • 2回复 待解决
OH_NativeImage_UpdateSurfaceImage接口错误码
157浏览 • 1回复 待解决
Image怎么替换svg图片?
6498浏览 • 1回复 待解决
验证pixelmap数据buffer转base64是否正常
153浏览 • 1回复 待解决
Image无法使用bindContextMenu
252浏览 • 1回复 待解决
请问鸿蒙和OH支持软总线互相通信吗
1455浏览 • 0回复 待解决
怎么把PixelMap图片转BASE64
7454浏览 • 1回复 待解决
python 如何安装 redis 模块
1963浏览 • 1回复 待解决