Skip to content Skip to sidebar Skip to footer

Getting Image Data Continuously From Camera, SurfaceView Or SurfaceHolder

So I have this camera preview set up with Camera, SurfaceView and SurfaceHolder. I have also an ImageView where I will be putting a modified version of the camera image and I want

Solution 1:

I went for option number 2 and finally made it work.

used this callback, forgot the @Override before

private Camera.PreviewCallback  previewCallback= new Camera.PreviewCallback()
{   
    @Override
    public void onPreviewFrame(byte[] data,Camera cam)
    {
            Camera.Size previewSize = cam.getParameters().getPreviewSize();
            YuvImage yuvImage = new YuvImage(data, ImageFormat.NV21,previewSize.width,previewSize.height, null);
            ByteArrayOutputStream baos = new ByteArrayOutputStream();
            yuvImage.compressToJpeg(new Rect(0,0,previewSize.width,previewSize.height),80,baos);
            byte[] jdata = baos.toByteArray();
            Bitmap bitmap = BitmapFactory.decodeByteArray(jdata,0,jdata.length);    
    }
};

And initiating it using setPreviewCallback rather than setPreviewCallbackWithBuffer

SurfaceHolder.Callback surfaceCallback=new SurfaceHolder.Callback() 
{   
    public void surfaceCreated(SurfaceHolder holder) {

        camera.setPreviewCallback(previewCallback);
    }
}

Post a Comment for "Getting Image Data Continuously From Camera, SurfaceView Or SurfaceHolder"