Вопрос по camera, android – Android: как сохранить рамку предварительного просмотра как изображение в формате jpeg?

7

Я хотел бы сохранить рамку предварительного просмотра в виде изображения в формате JPEG.

Я попытался написать следующий код:

<code>public void onPreviewFrame(byte[] _data, Camera _camera)
{
    if(settings.isRecording())
    {
        Camera.Parameters params = _camera.getParameters();
        params.setPictureFormat(PixelFormat.JPEG);
        _camera.setParameters(params);
        String path = "ImageDir" + frameCount;
        fileRW.setPath(path);
        fileRW.WriteToFile(_data);
        frameCount++;
    }
}
</code>

но невозможно открыть сохраненный файл в виде изображения в формате JPEG. Кто-нибудь знает, как сохранить предварительный просмотр кадров в формате JPEG?

Спасибо

Ваш Ответ

6   ответов
0

какие форматы предварительного просмотра поддерживаются для вашего устройства, позвонивgetSupportedPreviewFormats(), Убедитесь, что JPEG поддерживается перед вызовомsetPreviewFormat(PixelFormat.JPEG).

6

camera.setPreviewCallback(new PreviewCallback() {
                    @Override
                    public void onPreviewFrame(byte[] data, Camera camera) {
                        // TODO Auto-generated method stub
                        Camera.Parameters parameters = camera.getParameters();
                        Size size = parameters.getPreviewSize();
                        YuvImage image = new YuvImage(data, ImageFormat.NV21,
                                size.width, size.height, null);
                        Rect rectangle = new Rect();
                        rectangle.bottom = size.height;
                        rectangle.top = 0;
                        rectangle.left = 0;
                        rectangle.right = size.width;
                        ByteArrayOutputStream out2 = new ByteArrayOutputStream();
                        image.compressToJpeg(rectangle, 100, out2);
                        DataInputStream in = new DataInputStream();
                        in.write(out2.toByteArray());

                        }
                    }

                });
                camera.startPreview();
1

в списке android-разработчиков есть несколько примеров, если вы просматриваете архив - в основном это касается преобразования формата (яркость / цветность и т. Д.), Затем запись изображения в растровое изображение, затем сохранение в файл. ,

На самом деле все это немного болезненно.

0

ormat.JPEG) перед предварительным просмотром, но, похоже, он действительно не может установить формат предварительного просмотра ...... Кстати, формат предварительного просмотра по умолчанию - YCbCr_420_SP ....

-1

_data, вероятно, не в формате JPEG.Camera.Parameters.setPreviewFormat(PixelFormat.JPEG) перед вызовом начать предпросмотр?

Error: User Rate Limit Exceeded Niko Gamulin
Error: User Rate Limit Exceeded
Error: User Rate Limit Exceeded
0

официальная документация говорит,

"Only ImageFormat.NV21 and ImageFormat.YUY2 are supported for now"

Чтобы получить изображение из предварительного просмотра камеры, вам нужно определить формат предварительного просмотра, как показано ниже:

Camera.Parameters parameters;
parameters.setPreviewFormat(ImageFormat.NV21); //or ImageFormat.YU2

После этого вы сжимаете & amp; сохраните JPEG, как в примере с Дэни.

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