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.
Asked
Active
Viewed 1,460 times
0
-
will this link help you http://stackoverflow.com/a/9701011/1012284 – Padma Kumar Mar 19 '12 at 13:31
-
ya it does a little. it is more i dont know how to get the image from the onPreviewFrame, like if i import the image i can do all my calculations, but i dont know how to get the image from that method. – steven minkus Mar 20 '12 at 13:00
1 Answers
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;
}

geosmart
- 518
- 4
- 15
-
java is slowly to convert image format, you can use libuv to speed up – geosmart Dec 06 '19 at 04:37