android从onPreviewFrame获取像素数据转换为位图
Posted
技术标签:
【中文标题】android从onPreviewFrame获取像素数据转换为位图【英文标题】:android get pixel data from onPreviewFrame convert to a bitmap 【发布时间】:2012-04-03 23:45:07 【问题描述】:如何使用 onPreviewFrame (byte[] data, Camera camera) 为了得到像素(int x,int y)。我想将框架更改为位图可以吗?我使用onPreviewFrame是因为我想每秒获取像素数据,所以获取图片会太长。
【问题讨论】:
这个链接对你有帮助吗***.com/a/9701011/1012284 是的,它做了一点。更重要的是我不知道如何从 onPreviewFrame 中获取图像,例如如果我导入图像我可以进行所有计算,但我不知道如何从该方法中获取图像。 【参考方案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加速以上是关于android从onPreviewFrame获取像素数据转换为位图的主要内容,如果未能解决你的问题,请参考以下文章