HarmonyOS 鸿蒙Next自定义相机预览变形,竖屏拍照返回照片为横屏?
HarmonyOS 鸿蒙Next自定义相机预览变形,竖屏拍照返回照片为横屏? 上一个帖子关于拍照不回调问题:模拟器问题
1、预览变形,已经按下述方法进行设置(将properSize设置给imageReciver),结果不理想;
2、返回图片direction为横屏,有没有类似android设置camera preview的方向参数(该app本身为竖屏) 或其他解决方案;
更多关于HarmonyOS 鸿蒙Next自定义相机预览变形,竖屏拍照返回照片为横屏?的实战教程也可以访问 https://www.itying.com/category-93-b0.html
能分享下demo 吗?为什么我写的在远程模拟器是黑屏的,不知道啥原因!
更多关于HarmonyOS 鸿蒙Next自定义相机预览变形,竖屏拍照返回照片为横屏?的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html
相机只能真机调试,模拟器不支持
开发者你好,自定义相机预览变形需要在surfaceProvider回调surfaceCreated时设置尺寸,以当前控件宽高为准,如以下代码所示:
```swift
surfaceCreated(SurfaceOps surfaceOps) {
surfaceOps.setFixedSize(getHeight(), getWidth());
= surfaceOps.getSurface();
...
}
竖屏拍照可以设置照片角度,如以下代码所示:
// 调用拍照
public void capture() {
// 获取拍照配置模板
FrameConfig.Builder pictureFrameConfigBuilder =
cameraDevice.getFrameConfigBuilder(Camera.FrameConfigType.FRAME_CONFIG_PICTURE);
// 配置拍照surface
pictureFrameConfigBuilder.addSurface(imageReceiver.getRecevingSurface());
// 设置照片角度
pictureFrameConfigBuilder.setImageRotation(90);
try {
// 启动拍照
cameraDevice.triggerSingleCapture(pictureFrameConfigBuilder.build());
} catch (Exception e) {
e.printStackTrace();
}
}
你好,感谢回复,我试下。
您好,按照你给的代码设置,预览还是变形。
拍照返回角度已恢复正常。
getHeight,getWidth = 180*240 vp
properSize = 720*540
请求楼主,预览页面变形的问题还存在是吗?
开发者你好,您的问题已经为您转相关人员待处理中,有回复后我们会及时同步。
同时欢迎论坛开发小伙伴们互帮互助…
感谢您对开发者论坛的支持!!
在HarmonyOS鸿蒙Next中,自定义相机预览变形和竖屏拍照返回照片为横屏的问题,通常与相机参数设置和图像处理流程有关。首先,确保在相机初始化时正确设置了预览和拍照的分辨率、方向等参数。预览变形可能是由于预览窗口的宽高比与相机输出的图像宽高比不匹配导致的,可以通过调整预览窗口的尺寸或使用setPreviewSize
方法设置合适的预览分辨率来解决。
对于竖屏拍照返回照片为横屏的问题,通常是因为相机传感器的方向与设备屏幕方向不一致。在鸿蒙系统中,可以通过CameraConfig.Builder
中的setOrientation
方法设置相机的方向,确保与设备屏幕方向一致。此外,拍照后处理图像时,需要根据设备的旋转状态对图像进行旋转校正,可以使用Image
类的rotate
方法实现。
如果问题仍然存在,检查是否在CameraStateCallback
中正确处理了相机状态变化,确保在拍照时相机的方向设置正确。同时,确认在ImageReceiver
中接收图像时,正确处理了图像的旋转信息。
在HarmonyOS鸿蒙Next中,自定义相机预览变形和竖屏拍照返回横屏照片的问题,通常与相机参数设置和图像处理逻辑有关。首先,检查相机的预览尺寸和拍照尺寸是否匹配,确保宽高比一致。其次,确认相机方向传感器的数据是否正确处理,确保预览和拍照时的方向一致。最后,检查图像处理逻辑,确保在保存照片时正确处理了方向信息。通过这些步骤,可以有效解决预览变形和照片方向错误的问题。