如何从前置摄像头捕获图像后删除镜像效果? [Android]产品

时间:2017-01-26 20:08:47

标签: android android-studio camera android-camera android-camera-intent

基本上我创建了一个简单的Android相机应用程序,不添加视频录制,我按照这个链接 android camera app tutorial link

问题是当我从前置摄像头捕获图像时,点击捕获按钮后显示镜像的图像就像我们站在镜子前面一样。例如,我有右侧箭头图像,但是当我捕捉时,它会预览左侧箭头。对于英语。

2 个答案:

答案 0 :(得分:2)

显示位图时,您可以在imageView

中使用缩放属性
android:scaleX="-1" //To flip horizontally or
android:scaleY="-1" //To flip verticallyenter code here

您可能还想查看this帖子及此tutorial

更新1: 您可以以类似的方式在预览中翻转图像。您还可以创建一个辅助函数来翻转位图,然后将其设置为imageView。

可以找到帮助翻转图像的功能here。对于您的代码,您可能只需要以下内容:

public static Bitmap flip(Bitmap src, int type) {
            // create new matrix for transformation
            Matrix matrix = new Matrix();

            matrix.preScale(-1.0f, 1.0f);

            // return transformed image
            return Bitmap.createBitmap(src, 0, 0, src.getWidth(), src.getHeight(), matrix, true);
        }

然后在您的previewCaptureImage方法中,使用flip方法,然后将其设置为imageView,而不是此imgPreview.setImageBitmap(bitmap);

imgPreview.setImageBitmap(flip(bitmap));

答案 1 :(得分:0)

val outputOptions = ImageCapture
        .OutputFileOptions
        .Builder(photoFile)
        .setMetadata(ImageCapture.Metadata().also {
            it.isReversedHorizontal = CameraSelector.LENS_FACING_FRONT == lensFacing
        }).build()