0

first frameに表示されるカメラプレビューから保存できるかどうか疑問に思っていましたSurfaceView。私の活動では、現在すべてのSurfaceHolder.Callbackメソッドを実装しています。startPreviewカメラ オブジェクトを呼び出すとtakePicture、コールバックが正しく実行されますが、画像をより迅速に取得して保存する必要があるため、プレビューの最初の表示フレームを取得すると非常に便利です。私に何ができる?
どんな提案でも大歓迎です。

4

1 に答える 1

0

信じられないほど単純に思えるかもしれませんが、最初のフレームをBitmap.

mCamera.setPreviewCallback(new PreviewCallback() {
                public void onPreviewFrame(byte[] data, Camera camera) {

                    if (image == null) {
                        out = new ByteArrayOutputStream();
                        yuvImage = new YuvImage(data, ImageFormat.NV21, camera
                                .getParameters().getPreviewSize().width, camera
                                .getParameters().getPreviewSize().height, null);

                        yuvImage.compressToJpeg(new Rect(0, 0, camera
                                .getParameters().getPreviewSize().width, camera
                                .getParameters().getPreviewSize().height), 0,
                                out);

                        imageBytes = out.toByteArray();
                        image = BitmapFactory.decodeByteArray(imageBytes, 0,
                                imageBytes.length);
                    }

                }
            });
于 2013-04-18T13:55:10.820 に答える