2

たくさんグーグルした後。単一フレームのプレビューを変更する方法を見つけました。私が間違っている場合は修正してください。

camera.setPreviewCallback(new PreviewCallback() 

コールバックさせてくださいget the frame of a Camera in byte。これで、保存または変更できます。

まず第一に、これらのバイトに熱または夜の効果を追加したいだけです。これらの色 (エフェクト) を YUVImage or byte[]データに追加するにはどうすればよいですか?

camera.setPreviewCallback(new PreviewCallback() {
                    @Override
                    public void onPreviewFrame(byte[] data, Camera camera) {
                        // TODO Auto-generated method stub
                        Camera.Parameters parameters = camera.getParameters();
                        Size size = parameters.getPreviewSize();
                        YuvImage image = new YuvImage(data, ImageFormat.NV21,
                                size.width, size.height, null);
                        /*Rect rectangle = new Rect();
                        rectangle.bottom = size.height;
                        rectangle.top = 0;
                        rectangle.left = 0;
                        rectangle.right = size.width;
                        ByteArrayOutputStream out2 = new ByteArrayOutputStream();
                        image.compressToJpeg(rectangle, 100, out2);
                        DataInputStream in = new DataInputStream();
                        in.write(out2.toByteArray());*/

                        }
                    }

                });

YUVImage または byte[] にフィルター/エフェクトを適用する方法。

写真を撮るには、android.hardware.Camera.PictureCallback または使用する必要がありますsetOneShotPreviewCallback()

編集

ビットマップ画像のフィルタリングに役立つ便利なリンクがいくつかあると思います。

setPixel 説明

getPixel と setPixel が正しく機能しない

4

0 に答える 0