ionic 3:相机预览takePicture()不遵循y轴限制(但沿x轴工作正常)

时间:2018-12-20 18:41:48

标签: android ionic-framework cordova-plugins

我想在一个包含div的矩形中打开相机预览,并拍摄相机预览中可见的图片。

我使用了CameraPreview.startCamera方法(请参见下面的方法)来给startCamera确切的矩形以打开相机。它可以正常工作,并完全按照我的要求在div中打开相机。

但是当我拍照时(见下图:cameraPreview.takePicture),我发现相机已沿Y轴捕获了指定矩形以外的内容

有趣的是,沿X轴显示的图片中,仅包含在拍摄图片时位于重新标识内部的内容。

我要附上我的相关图片和下面的代码。

任何帮助将不胜感激!


下面的图像1:包含div的相机预览。

enter image description here


下图2:相机预览拍摄的实际图像以及我的实际期望:

enter image description here

我使用以下代码在预览中打开相机并拍照:

export class CameraService {
    constructor(private camera: Camera,
                private platform: Platform,
                private cameraPreview: CameraPreview) {

    }

    takePicture(div) {
        return this.cameraPreview.takePicture();
    }

    startCamera(div?) {

        let rectangle = div.getBoundingClientRect();
        let x = rectangle.x;
        let y = rectangle.y;
        let width = rectangle.width;
        let height = rectangle.height;
        let tapEnabled: any = false;
        let dragEnabled: any = false;
        // let toBack: any = true;
        let alpha = 1;
        let rect: any = {
            x: x || 250,
            y: y || 250,
            width: width || this.platform.width(),
            height: height || this.platform.height()
        };

        console.log(rect);

        this.cameraPreview.startCamera(
            {
                ...rect,
                toBack: true,
                tapEnabled,
                dragEnabled,
                previewDrag: true,
                alpha
            }
        );
    }
}

0 个答案:

没有答案