HarmonyOS ImageReceiver获取图像通过NativeWindow渲染显示的旋转角度问题
通过ImageReceiver获取到相机的YUV数据,由NV21转为I420格式,通过NativeWindow渲染,后置相机的旋转角度为90度,但是需要将NativeWindow的角度设为270度才能显示正常;同理前置相机的旋转角度为270度,需要将NativeWindow的角度设为90度才能显示正常
以下为NativeWindow属性设置代码:
code = SET_FORMAT;
int32_t format = NATIVEBUFFER_PIXEL_FMT_YCBCR_420_P;
ret = OH_NativeWindow_NativeWindowHandleOpt(nativeWindow, code, format);
OH_LOG_Print(LOG_APP, LOG_INFO, LOG_DOMAIN, "mytest", "set window format=%{public}d", ret);
code = SET_TRANSFORM;
int32_t transform = NATIVEBUFFER_ROTATE_NONE;
ret = OH_NativeWindow_NativeWindowHandleOpt(nativeWindow, code, transform);
OH_LOG_Print(LOG_APP, LOG_INFO, LOG_DOMAIN, "mytest", "SET_TRANSFORM=%{public}d", ret);
HarmonyOS
赞
收藏 0
回答 1
待解决
相关问题
HarmonyOS 图片旋转角度问题
64浏览 • 1回复 待解决
HarmonyOS 如何通过native source获取图片的旋转角度
96浏览 • 1回复 待解决
Canvas 中 fillText 如何旋转角度
576浏览 • 1回复 待解决
HarmonyOS 如何设置前置摄像头镜像?或旋转角度?
141浏览 • 1回复 待解决
HarmonyOS Camera kit 双路预览方案中预览数据的旋转角度
116浏览 • 1回复 待解决
HarmonyOS 有加速度传感器native层的demo吗?需要计算手机的旋转角度,来适配图片的显示角度。
152浏览 • 1回复 待解决
HarmonyOS 相机双路预览,通过ImageReceiver实时获取预览图像的数据操作
86浏览 • 1回复 待解决
HarmonyOS 相机双路预览,通过ImageReceiver实时获取预览图像,怎么控制频率
114浏览 • 1回复 待解决
HarmonyOS 相机双路预览,通过ImageReceiver 接收预览流后,怎么获取预览流的角度
314浏览 • 1回复 待解决
请问在鸿蒙LiteWearable中,想让一张图片旋转角度不超过一周,怎么实现呢?
5528浏览 • 1回复 待解决
HarmonyOS 如何获取图片的角度
121浏览 • 1回复 待解决
HarmonyOS 旋转设备获取设备方向问题
82浏览 • 1回复 待解决
HarmonyOS 如何通过陀螺仪获取手机在X轴上的偏移角度
91浏览 • 1回复 待解决
请问鸿蒙LiteWearable怎么实现图片旋转的角度是动态绑定的值?
6735浏览 • 1回复 待解决
HarmonyOS相机双路预览,图像的角度不正确,是横向的,如何处理?
520浏览 • 1回复 待解决
HarmonyOS 手势响应不同角度问题
304浏览 • 1回复 待解决
HarmonyOS videodecoder解码API和nativewindow api 使用问题
154浏览 • 1回复 待解决
HarmonyOS 相机开发中ImageReceiver所遇到的问题
445浏览 • 1回复 待解决
HarmonyOS photoAccessHelper 获取的图片资源无法获取图像宽高
304浏览 • 1回复 待解决
imageReceiver拿到的数据帧长度
1913浏览 • 1回复 待解决
HarmonyOS 旋转屏幕后显示不正常
119浏览 • 1回复 待解决
HarmonyOS 双路预览如何处理ImageReceiver的图片镜像问题
82浏览 • 1回复 待解决
如何获取前置摄像头的预览图像
2504浏览 • 1回复 待解决
要通过ImageReceiver获取图像并通过NativeWindow渲染显示的旋转角度,可以按照以下步骤进行:
1.获取ImageReceiver对象:通过ImageReceiverNative获取ImageReceiver对象。
2.获取ImageSourceInfo对象:使用OH_ImageSource_Info_Create函数创建一个ImageSourceInfo指针。
3.获取旋转角度:使用OH_ImageSourceInfo_GetRotate函数获取ImageSourceInfo对象中的旋转角度信息。
4.设置旋转角度:如果需要设置旋转角度,可以使用OH_ImageSourceInfo_SetRotate函数。
5.渲染图像:使用NativeWindow将图像渲染显示,并应用之前获取的旋转角度。具体的步骤如下:- 调用OH_ImageReceiverNative_GetCapacity获取ImageReceiver的容量。- 调用OH_ImageSourceInfo_GetRotate获取旋转角度。- 如果需要设置旋转角度,可以调用OH_ImageSourceInfo_SetRotate。- 使用OH_ImageSourceInfo_Release释放ImageSourceInfo指针。- 使用OH_DecodingOptions_Create创建DecodingOptions对象。- 使用OH_DecodingOptions_GetRotate获取旋转角度。- 如果需要设置旋转角度,可以调用OH_DecodingOptions_SetRotate。- 使用OH_PixelmapNative_ReadPixels读取图像像素数据。- 使用OH_PixelmapNative_Scale根据输入的宽高对图片进行缩放。- 使用OH_PixelmapNative_Rotate根据输入的角度对图片进行旋转。- 使用OH_PixelmapNative_WritePixels将处理后的图像像素数据写回PixelMap。- 使用OH_PixelmapNative_Release释放PixelmapNative指针。
通过以上步骤,可以实现通过ImageReceiver获取图像并通过NativeWindow渲染显示的旋转角度。
当前规格,预览流旋转角度固定值 90 度,
目前双路预览流角度固定前置摄像头得到的YUV数据顺时针旋转了90度,后置摄像头得到的YUV数据顺时针旋转了270度。
可以通过YUV数据进行旋转操作,对于前置摄像头的数据还需进行镜像翻转操作
NativeWindow设置的旋转角度是逆时针