Итак, я пытаюсь использовать распознавание лиц с камерой, поэтому мне нужно преобразовать массив байтов, предоставленный обратному вызову предварительного просмотра, в растровое изображение, используя этот код:
Camera.PreviewCallback previewCallback=new Camera.PreviewCallback()
{
@Override
public void onPreviewFrame(byte[] data, Camera camera)
{
BitmapFactory.Options options = new BitmapFactory.Options();
Bitmap mBitmap = BitmapFactory.decodeByteArray(data, 0, data.length, options);
if(mBitmap==null) faceDetected=false;
else faceDetected=(findFace(mBitmap)!=null);
}
};
К сожалению, mBitmap всегда равен нулю, а параметры outHeight и outWidth всегда равны -1, что указывает на ошибку декодирования. Диагностики естественно нет, так что исправить не получится.
BitmapFactory
может не обрабатывать формат изображения, используемый кадрами предварительного просмотра камеры (например, YUV). - person CommonsWare   schedule 02.05.2015android onpreviewframe imageview
. Я бы начал там. - person CommonsWare   schedule 02.05.2015