Я занимаюсь разработкой довольно требовательного к работе приложения, в котором мне нужно делать снимки и сохранять их при каждом нажатии кнопки.При нажатии на кнопку я запускаю метод 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?