【问题标题】:android get pixel data from onPreviewFrame convert to a bitmapandroid从onPreviewFrame获取像素数据转换为位图
【发布时间】:2012-04-03 23:45:07
【问题描述】:

如何使用 onPreviewFrame (byte[] data, Camera camera) 为了得到像素(int x,int y)。我想将框架更改为位图可以吗?我使用onPreviewFrame是因为我想每秒获取像素数据,所以获取图片会太长。

【问题讨论】:

  • 这个链接对你有帮助吗stackoverflow.com/a/9701011/1012284
  • 是的,它做了一点。更重要的是我不知道如何从 onPreviewFrame 中获取图像,例如如果我导入图像我可以进行所有计算,但我不知道如何从该方法中获取图像。

标签: android bitmap android-camera getpixel


【解决方案1】:
@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;
}

【讨论】:

  • java转换图片格式比较慢,可以用libuv加速
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2016-08-24
  • 1970-01-01
  • 2012-03-11
  • 1970-01-01
  • 1970-01-01
  • 2018-12-04
  • 2011-09-02
相关资源
最近更新 更多