Converting preview frame to bitmap

后端 未结 5 1693
天涯浪人
天涯浪人 2020-11-29 07:30

I know the subject was on the board many times, but i can not get it work anyhow... I want to save view frames from preview to jpeg files. It looks more or less(code is simp

5条回答
  •  有刺的猬
    2020-11-29 08:17

    Simply saving to a jpeg is an easier task than converting to bitmap, no need for that YUV decoding code thanks to YuvImage class.

    import android.graphics.YuvImage; 
    
    @Override 
    public void onPreviewFrame(byte[] data, Camera camera) { 
        try { 
            Camera.Parameters parameters = camera.getParameters(); 
            Size size = parameters.getPreviewSize(); 
            YuvImage image = new YuvImage(data, parameters.getPreviewFormat(), 
                    size.width, size.height, null); 
            File file = new File(Environment.getExternalStorageDirectory(), "out.jpg"); 
            FileOutputStream filecon = new FileOutputStream(file); 
            image.compressToJpeg( 
                    new Rect(0, 0, image.getWidth(), image.getHeight()), 90, 
                    filecon); 
        } catch (FileNotFoundException e) { 
            Toast toast = Toast 
                    .makeText(getBaseContext(), e.getMessage(), 1000); 
            toast.show(); 
        } 
    } 
    

提交回复
热议问题