Как получить фреймы изображения предварительного просмотра из Приложения Камеры в Программировании Android?

Я пишу приложение, чтобы получить кадры предварительного просмотра камеры и преобразовать его для побитового отображения в Android. Вот мой код:

   Camera.PreviewCallback previewCallback = new Camera.PreviewCallback()  
    { 
            public void onPreviewFrame(byte[] data, Camera camera)  
            { 
                    try 
                    { 
                            BitmapFactory.Options opts = new BitmapFactory.Options(); 
                            Bitmap bitmap = BitmapFactory.decodeByteArray(data, 0, data.length);//,opts); 
                    } 
                    catch(Exception e) 
                    {

                    } 
            } 

    }; 

    mCamera = Camera.open();
    mCamera.setPreviewCallback(previewCallback); 

После того, как я запускаю предварительный просмотр, обратный вызов назвали с данными, но битовый массив является пустым.

Что я делал неправильно, когда преобразовывают массив байтов в BitMap?

9
задан Oded 31 July 2010 в 21:13
поделиться

1 ответ

Пробовали ли вы декодировать данные кадра предварительного просмотра в RGB перед использованием BitmapFactory? Формат по умолчанию — YUV, и я не уверен, что он совместим с BitmapFactory. Метод декодирования Дейва Манперла можно найти здесь:

Получение кадров из видеоизображения в Android

Сообщите мне, работает ли он.

Ура,

Пол

1
ответ дан 4 December 2019 в 10:30
поделиться
Другие вопросы по тегам:

Похожие вопросы: