BitmapFactory.decodeByteArray () возвращает NULL

Я использую PreviewCallback с камеры, чтобы попытаться захватить изображения. Вот код, который я использую

private Camera.PreviewCallback mPrevCallback = new Camera.PreviewCallback() 
{
        public void onPreviewFrame( byte[] data, Camera Cam ) {
                Log.d("CombineTestActivity", "Preview started");
                Log.d("CombineTestActivity", "Data length = " 
                        + data.length );
                currentprev = BitmapFactory.decodeByteArray( data, 0, 
                        data.length );

               if( currentprev == null )
                   Log.d("CombineTestActivity", "currentprev is null" );

                Log.d("CombineTestActivity", "Preview Finished" );

        }
};

длина данных всегда совпадает с 576000.

Также я попытался изменить параметры камеры, чтобы изображение возвращалось в разных форматах. Вот как это выглядит, когда я это делаю.

mCamera = Camera.open();
camParam = mCamera.getParameters();
camParam.setPreviewFormat( ImageFormat.RGB_565 );
mCamera.setParameters( camParam );
    mCamera.setPreviewCallback( mPrevCallback );

Однако, когда я меняю формат предварительного просмотра и оставляю его по умолчанию для NV21, BitmapFactory.decodeByteArray возвращается как ноль. Я также попытался изменить формат предварительного просмотра на тип JPEG. Я даже получаю утверждение отладки в ddms, это то, что я получаю

«D / skia (14391): --- SkImageDecoder :: Фабрика вернула ноль»

Ответы на вопрос(2)

Ваш ответ на вопрос