当前位置:  开发笔记 > Android > 正文

Android摄像头预览在方形屏幕上拉伸

如何解决《Android摄像头预览在方形屏幕上拉伸》经验,为你挑选了1个好方法。

我正在为Android构建一个应用程序,但该设备有一个方形屏幕.屏幕为320x320,相机应用程序使用SurfaceView显示预览,如下所示:

    mCameraView = (SurfaceView) findViewById(R.id.surface);
    LayoutParams params = mCameraView.getLayoutParams();
    int camera_dimension = getResources().getInteger(R.integer.camera_dimension);
    params.height = camera_dimension; //320px
    params.width = camera_dimension;

    mCameraView.setLayoutParams(params);
    mCameraViewHolder = mCameraView.getHolder();
    mCameraViewHolder.addCallback(this);
    mCameraViewHolder.setType(SurfaceHolder.SURFACE_TYPE_PUSH_BUFFERS);

在Surface上改变了,我正在做这个并且它可以工作,但支持者预览是w480 x h320

public void surfaceChanged(SurfaceHolder holder, int format, int w, int h) {

    int mWidth = w;
    int mHeight = h;
    int mFormat = format;

    try {
        mCameraAccess.mCamera.stopPreview();
    } catch (Exception e){
        // ignore: tried to stop a non-existent preview
    }
    Camera.Parameters param = mCameraAccess.mCamera.getParameters();

    List SupportedPreview = param.getSupportedPreviewSizes();
    int ScreenSize = getResources().getInteger(R.integer.camera_dimension);

    for (int i = 0; i < SupportedPreview.size(); i++) {
        if (SupportedPreview.get(i).height == ScreenSize) {
            param.setPreviewSize(SupportedPreview.get(i).width, SupportedPreview.get(i).height);
            break;
        }
    }
    mCameraAccess.mCamera.setParameters(param);
    mCameraAccess.mCamera.startPreview();
}

如何确保我在视图中的预览不是压缩而是一种中心作用.由于预览是一个矩形,我只需要以图像为中心的正方形.通常我使用的是scaleType,但Surface视图中不支持它

任何的想法 ?



1> Muhammad Uma..:

我想出的解决方案是:

1) - 全屏保持表面视图,这样就不会拉伸.

2) - 在具有完全不透明度的surfaceview上进行视图.所以看起来像相机已经被平方.

3) - 捕获图像或视频后,您将不得不裁剪它们.

对于视频,您必须使用一些视频处理库,如javacv.使用此库,您可以提取视频帧,将它们转换为位图,在方块中裁剪位图,然后重新编码为视频.

为了获得准确的结果,您需要根据需要使用不同的技术,例如在捕捉期间缩放相机等.

原始图片:

在此输入图像描述

平方图像:

在此输入图像描述

推荐阅读
惬听风吟jyy_802
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有