摄像头预览旋转90度问题
来源:互联网 发布:seo视频教程百度云 编辑:程序博客网 时间:2024/06/15 19:58
在调试一款摄像头的过程中,最初的预览图像与实际角度相差90度,需要对预览角度进行修正,代码修改如下:
在PhotoModule.java中修改setDisplayOrientation()函数,将 mCameraDevice.setDisplayOrientation(mCameraDisplayOrientation);改为mCameraDevice.setDisplayOrientation(mCameraDisplayOrientation+90);
这样修改之后,预览图像旋转了90度,但预览画面被拉伸,这是由于预览窗口的长宽比和预览图像的长宽比不匹配导致,所以接着修改。
在PhotoUI.java中修改如下:
int orientation = mActivity.getResources().getConfiguration().orientation;
if (((rotation == 0 || rotation == 180) && scaledTextureWidth > scaledTextureHeight)
|| ((rotation == 90 || rotation == 270)
&& scaledTextureWidth < scaledTextureHeight)) {
//lp = new FrameLayout.LayoutParams((int) scaledTextureHeight, (int) scaledTextureWidth, Gravity.CENTER);//原来的代码
lp = new FrameLayout.LayoutParams((int) scaledTextureWidth, (int) scaledTextureHeight, Gravity.CENTER);
} else {
lp = new FrameLayout.LayoutParams((int) scaledTextureHeight, (int) scaledTextureWidth, Gravity.CENTER);
// lp = new FrameLayout.LayoutParams((int) scaledTextureWidth, (int) scaledTextureHeight, Gravity.CENTER);//原来的代码
}
这样,预览图像正常了,有些是可以直接交换摄像头参数中的长宽比,但一些驱动不支持。
存储图像之后又发现存储下来的图像还是旋转了90度。继续修改。
又在PhotoModule.java中的capture()中修改存储方向:
//int orientation = mOrientation;
int orientation;
if(mActivity.isAutoRotateScreen()) {
orientation = (360 - mDisplayRotation + 90) % 360;
} else {
orientation = (mOrientation + 90) % 360;
}
这下全部OK,视频的角度旋转的处理方式一样。
在实际处理过程中要注意屏与摄像头的匹配,你不能竖屏配一下横屏显示,横屏配一个竖屏显示,如果这种情况可能就还需要模组厂重新打样调整sensor方向了
- 摄像头预览旋转90度问题
- OpenCV4Android中图像预览旋转90度的问题
- 摄像头旋转问题
- 摄像头camera 旋转90度 解决方法
- HI258摄像头旋转配置问题
- 关于二维码扫描显示预览图像旋转90度的问题
- H5技术完美实现调用手机摄像头、相册。图片上传base64,图片压缩、预览、删除以及图片旋转90度的处理--demo。
- 使用Camera类, 旋转90预览图像的问题
- Flex开发Android应用调用手机摄像头被旋转90度问题
- Android 直接控制摄像头并解决照片旋转90度的问题
- 关于视频录制预览摄像头拉伸问题
- 关于视频录制预览摄像头拉伸问题
- Android Camera拍照预览图片90度旋转
- Android Camera拍照预览图片90度旋转
- 解决LBXScan在ipad上横屏扫码时摄像头旋转90度
- Android学习【1】解决android摄像头预览的变形问题
- android开发摄像头开发,在自己的SurfaceView里预览,并且解决摄像头预览变形问题--懒人笔记02
- 移动端上传图片 支持图片预览、压缩、大图分片压缩、压缩后上传 解决了IOS竖屏拍照旋转90度的问题
- 分析一个通用的rtsp server实现过程总纲
- linux irq_domain机制说明
- SpringMVC 中的异常处理
- 记录一下学习ReactNative爬过的坑——StackNavigator
- P3144 [USACO16OPEN]关闭农场Closing the Farm
- 摄像头预览旋转90度问题
- OpenCV学习之椭圆曲线拟合
- (8)Mysql存储过程
- lnmp架构之php的安装与memcache
- usb-modeswitch
- QT程序打包发布方法
- 初学nodejs
- Mybatis源码解析 KeyGenerator
- React-Native 数据存储之react-native-storage的简单使用