0

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.

steven minkus
  • 131
  • 2
  • 2
  • 14
  • 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 Answers1

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