Различные размеры предварительного просмотра камеры на Android - PullRequest
2 голосов
/ 09 декабря 2011

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

Проблема в том, что копирование изображения из памяти JVM в мою родную занимает очень много времени.

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

1 Ответ

0 голосов
/ 09 декабря 2011

Как правило, вы используете метод setPreviewSize() класса Camera.Parameters.

Примерно так:

...
Camera.Parameters mParams = camera.getParameters();
List<Camera.Size> previewSizes = mParams.getSupportedPreviewSizes();
Camera.Size previewSize = previewSizes.get(previewSizes.size()-1);
mParams.setPreviewSize(previewSize.width, previewSize.height);
mParams.setPreviewFrameRate(15); // get 15 preview frames per second
camera.setParameters(mParams);
...

Где camera - это объект Camera, отображающий изображение,

У меня есть это в surfaceChanged методе SurfaceView.Это изменит размер предварительного просмотра, который вы получаете в реализации Camera.PreviewCallback, которая захватывает YUV-изображение камеры (или растровое изображение, если вам повезло иметь телефон, который его использует).Это не влияет на изображение, отображаемое на экране.

...