setOneShotPreviewCallback () для объекта Camera, обрезанная версия предварительного изображения - PullRequest
0 голосов
/ 18 мая 2011

Я занимаюсь разработкой довольно требовательного к работе приложения, в котором мне нужно делать снимки и сохранять их при каждом нажатии кнопки.При нажатии на кнопку я запускаю метод setOneShotPreviewCallback() объекта камеры, чтобы получить byte[], представляющее изображение в этот момент.В данный момент после этого я беру это byte[] и преобразую его в растровое изображение, используя объект YUVImage, который очень тяжел для процессора.Чтобы уменьшить это, я обрезаю изображение, используя:

Rect rect = new Rect(4*w/10, 0, 9*w/10, h);
final ByteArrayOutputStream output_stream = new ByteArrayOutputStream();
yuv_image.compressToJpeg(rect, 100, output_stream);

Я хотел бы знать, могу ли я сделать это только с помощью byte[] и не нужно конвертировать его в изображение YUV?как перед вызовом обратного вызова создается Rect, а byte[] заполняется только данными изображения внутри этого Rect?

1 Ответ

1 голос
/ 01 июня 2011

Попробуйте настроить PreviewFormat:

parameters.setPreviewFormat(ImageFormat.JPEG);
...