简体   繁体   中英

android get pixel data from onPreviewFrame convert to a bitmap

how do i use onPreviewFrame (byte[] data, Camera camera) inorder to getPixel(int x, int y). I want to change the frame into a bitMap is that possible? I am using onPreviewFrame because I want to getPixel data every second, so it would be too long to get the picture.

@Override
public void onPreviewFrame(byte[] data, Camera camera) {
    byte[] baos = convertYuvToJpeg(data, camera);
    if (baos != null) {
        Bitmap bitmap = Tool.loadBitmap(baos);
    }
}

public byte[] convertYuvToJpeg(byte[] data, Camera camera) {
    try {
        YuvImage image = new YuvImage(data, ImageFormat.NV21,
                camera.getParameters().getPreviewSize().width,
                camera.getParameters().getPreviewSize().height,
                null);
        ByteArrayOutputStream baos = new ByteArrayOutputStream();
        Rect rect = new Rect(0, 0,
                camera.getParameters().getPreviewSize().width,
                camera.getParameters().getPreviewSize().height);
        //set quality
        int quality = 100;
        image.compressToJpeg(rect, quality, baos);
        return baos.toByteArray();
    } catch (Exception e) {
    }
    return null;
}

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM