Cela a été difficile à trouver! Mais depuis l'API 8, il existe une classe YuvImage dans android.graphics. Ce n'est pas un descendant d'image, donc tout ce que vous pouvez faire avec c'est de l'enregistrer en Jpeg, mais vous pouvez l'enregistrer dans un flux mémoire et ensuite charger dans Bitmap Image si c'est ce dont vous avez besoin.
import android.graphics.YuvImage;
@Override
public void onPreviewFrame(byte[] data, Camera camera) {
try {
Camera.Parameters parameters = camera.getParameters();
Size size = parameters.getPreviewSize();
YuvImage image = new YuvImage(data, parameters.getPreviewFormat(),
size.width, size.height, null);
File file = new File(Environment.getExternalStorageDirectory()
.getPath() + "/out.jpg");
FileOutputStream filecon = new FileOutputStream(file);
image.compressToJpeg(
new Rect(0, 0, image.getWidth(), image.getHeight()), 90,
filecon);
} catch (FileNotFoundException e) {
Toast toast = Toast
.makeText(getBaseContext(), e.getMessage(), 1000);
toast.show();
}
}
Meybe il sera utile à quelqu'un. Regardez ma solution ici: http://stackoverflow.com/questions/20298699/onpreviewframe-data-image-to-imageview/34438806#34438806 –