HarmonyOS 图片解码咨询
后置摄像头拍出来的照片,使用RGBA_8888进行解码,再绑定到openGL纹理上,显示是正常前,置摄像头拍出来的照片,同样的逻辑,图片会撕裂。想请教一下前置摄像头和后置摄像头拍出来的照片有什么不一样。解码逻辑如下:
const file = await fs.open(uri, fs.OpenMode.READ_ONLY);
const imageSource = image.createImageSource(file.fd);
const size = imageSource.getImageInfoSync(0).size
const pixelMap =
await imageSource.createPixelMap({
desiredPixelFormat: image.PixelMapFormat.RGBA_8888
});
创建纹理逻辑如下:
auto createPixelStatus = OHOS::Media::OH_AccessPixels(env, pixelMap, &data);
if (createPixelStatus != OHOS::Media::OHOS_IMAGE_RESULT_SUCCESS) {
OH_LOG_INFO(LOG_APP, "createTextureFail.");
return 0;
}
GLuint texture = 0;
glGenTextures(1, &texture);
glBindTexture(GL_TEXTURE_2D, texture);
glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR);
glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR);
glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_CLAMP_TO_EDGE);
glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_CLAMP_TO_EDGE);
glTexImage2D(GL_TEXTURE_2D, 0, GL_RGBA, width, height, 0, GL_RGBA, GL_UNSIGNED_BYTE, data);
glBindTexture(GL_TEXTURE_2D, 0);
换成BGRA_8888解码,图片可以正常显示,但是颜色通道不对。
HarmonyOS
赞
收藏 0
回答 1
待解决
相关问题
HarmonyOS 音频编解码问题咨询
50浏览 • 1回复 待解决
HarmonyOS 视频解码Surface和Buffer模式咨询
27浏览 • 1回复 待解决
HarmonyOS OH_AVCodec硬解码流程问题咨询
814浏览 • 1回复 待解决
图片编解码能力支持哪些格式
1971浏览 • 1回复 待解决
HarmonyOS Image加载本地图片咨询
503浏览 • 1回复 待解决
图片编解码支持的格式有哪些
1730浏览 • 1回复 待解决
HarmonyOS 关于GIF图片播放功能的咨询
70浏览 • 1回复 待解决
HarmonyOS保存图片到系统相册问题咨询
687浏览 • 1回复 待解决
HarmonyOS ImageKnife解码heic图片遇到了三个问题
37浏览 • 1回复 待解决
如何将一张474*316的图片解码为40*40的图片?
396浏览 • 1回复 待解决
HarmonyOS 当前是否有HEIF格式图片的c++编解码接口
0浏览 • 0回复 待解决
HarmonyOS视频解码问题
738浏览 • 1回复 待解决
HarmonyOS imageSource解码尺寸小于128*128的HEIF图片,错误码是什么?
55浏览 • 1回复 待解决
HarmonyOS 如何将resources->media文件夹下的图片资源解码成PixelMap
3浏览 • 0回复 待解决
HarmonyOS hevc格式视频解码
330浏览 • 1回复 待解决
HarmonyOS uri编码解码问题
69浏览 • 1回复 待解决
HarmonyOS base64解码,以及解码后如何加载到Image中
38浏览 • 1回复 待解决
HarmonyOS 有没有把Base64字符串解码成图片的方法
384浏览 • 1回复 待解决
HarmonyOS CBOR编解码问题
509浏览 • 1回复 待解决
HarmonyOS 视频编解码问题
36浏览 • 1回复 待解决
HarmonyOS 音频已经集成silk编解码了,能否支持边播边解码
61浏览 • 1回复 待解决
HarmonyOS系统有没有把Base64字符串解码成图片的方法?
500浏览 • 1回复 待解决
HarmonyOS native中svg解码异常
469浏览 • 1回复 待解决
HarmonyOS编解码接口标准
446浏览 • 1回复 待解决
HarmonyOS AudioVivid音频解码和渲染
25浏览 • 1回复 待解决
1、通过OhosPixelMapInfos.rowSize获取stride。
2、gl绑定纹理时带上stride,glPixelStorei(GL_UNPACK_ROW_LENGTH, stride);注意:这里的第二个参数是以像素为单位的,而rowSize是以字节为单位的。