簡體   English   中英

顛倒相機預覽

[英]Camera Preview upside down

前置攝像頭顯示顛倒。 我正在閱讀每一幀。 我想我知道將代碼放在surfaceChanged中的位置,但不知道該怎么做。

@Override
    public void surfaceChanged(SurfaceHolder mHolder, int arg1 , int arg2 , int arg3)
    {
        if (mHolder.getSurface() == null) { return; }

        mCamera.setPreviewCallback(previewCallback); 

        try
        {
            mCamera.setPreviewDisplay(mHolder);
            mCamera.startPreview();

            return;
        }
        catch (Exception exception)
        {
            Log.d("CameraView", (new StringBuilder()).append("Error starting camera preview: ")
                    .append(exception.getMessage()).toString());
        }
    }

我嘗試了什么。

private android.hardware.Camera.PreviewCallback previewCallback = new android.hardware.Camera.PreviewCallback()
    {
        public void onPreviewFrame(byte abyte0[] , Camera camera)
        {       
            int[] rgbData = YuvUtils.decodeGreyscale(abyte0, widthPreview,heightPreview);

            editedBitmap.setPixels(rgbData, 0, widthPreview, 0, 0, widthPreview, heightPreview);

            if(MainActivity2.cameraId==CameraInfo.CAMERA_FACING_FRONT)  // it is rotating my CameraPreview continuosly.
            {
                matrix.postRotate(270F);
            }
            finalBitmap = Bitmap.createBitmap(editedBitmap, 0, 0, widthPreview, heightPreview, matrix, true);

            if(saveCurrentFrame)
            {
                saveCurrentFrame =false;

                new BitmapSaver(ctx, finalBitmap).start();
            }
        }
    };

但是它一直在旋轉我的相機預覽。 我的活動設置為Potrait。 我的活動中不允許更改方向

我會使用matrix.setRotate()

matrix.postRotate()每次調用時都會增加旋轉。 角度從270-> 540-> 810-> 1080-> 1350->等

matrix.setRotate()始終將其設置為270。

拍攝照片之前,可以使用_camera.SetDisplayOrientation(90)旋轉相機的預覽。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM