【发布时间】:2012-03-17 22:30:42
【问题描述】:
我正在尝试访问 android 前置摄像头的原始信息。默认情况下,前置摄像头的预览是水平翻转的,因此用户可以像照镜子一样看到自己——这很好,但不是我需要的。获取原始饲料的最佳方式是什么?有什么方法可以禁用自动翻转,还是我应该自己尝试在代码中翻转它?我的应用程序需要显示前置摄像头的实时馈送,而不会像镜子一样翻转。
【问题讨论】:
我正在尝试访问 android 前置摄像头的原始信息。默认情况下,前置摄像头的预览是水平翻转的,因此用户可以像照镜子一样看到自己——这很好,但不是我需要的。获取原始饲料的最佳方式是什么?有什么方法可以禁用自动翻转,还是我应该自己尝试在代码中翻转它?我的应用程序需要显示前置摄像头的实时馈送,而不会像镜子一样翻转。
【问题讨论】:
如果您想使用前置摄像头进行条码扫描,您可以使用 TextureView 并对其应用转换矩阵。更新纹理后,您可以读取图像数据并使用它。
见https://github.com/hadders/camera-reverse
具体来自 MainActivity.java
mCamera.setDisplayOrientation(90);
Matrix matrix = new Matrix();
matrix.setScale(-1, 1);
matrix.postTranslate(width, 0);
mTextureView.setTransform(matrix);
【讨论】:
来自前置摄像头的数据就像摄像头看到的那样,看着你。其图像的左侧是您的右侧。我想这就是你想要的吗?当放到 SurfaceView 上时,它会被翻转,所以它会按照你说的那样工作,但这是一个单独的外观转换。
至少,这是我见过的每台设备的工作原理,我一直在努力研究如何在Barcode Scanner / Barcode Scanner+ 中实现前置摄像头支持。
【讨论】:
View 上。或者,也许您必须手动反转它,因为它只会重新反转它。我自己从来没有接触过这方面,只是在我单独收听数据的同时,总是让它随心所欲地向SurfaceView投掷任何东西。