android从onPreviewFrame获取像素数据转换为位图

问题描述 投票:0回答:1

我如何使用onPreviewFrame(字节[]数据,摄像机)为了获得getPixel(int x,int y)。我想将框架更改为bitMap,这可能吗?我使用onPreviewFrame是因为我想每秒获取一次像素数据,因此获取图片太长了。

android bitmap android-camera getpixel
1个回答
0
投票
@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;
}
© www.soinside.com 2019 - 2024. All rights reserved.