Я хочу использовать предварительный просмотр камеры для распознавания изображений. Для меня
Для этого нужно, чтобы разрешение предварительного просмотра было как можно выше
(и в то же время отображать предварительный просмотр для пользователя).
Я создал класс Preview, расширив SurfaceView и установив
PreviewSize до 1280x720. Я добавил PreviewCallBack, чтобы получить живой
Изображение:
camera = Camera.open();
parameters = camera.getParameters();
parameters.setPreviewSize(1280,720);
camera.setParameters( parameters);
byte[] b = new byte[camera.getParameters().getPreviewSize().width *
camera.getParameters().getPreviewSize().height *
ImageFormat.getBitsPerPixel(camera.getParameters().getPreviewFormat()) / 8];
camera.addCallbackBuffer(b);
camera.setPreviewCallbackWithBuffer(new CameraPreviewCallback());
try {
camera.setPreviewDisplay(this.getHolder());
camera.startPreview()
}
Мой байтовый массив b равен 1382400 байт, а мой
Функция CameraPreviewCallback.onPreviewFrame () получает эти 1382400
Байты - но только первые 497664 байта содержат данные (соответствующие
Разрешение 768x432 (HTC Desire)).
Я проверил это на разных устройствах, все с разрешением экрана
800x480 (HTC Desire, LG Optimus 3D, Samsung Galaxy S2, Samsung Galaxy
Вкладка, ...). Единственное устройство, для которого работает мой Код - это HTC Desire HD.
Кто-нибудь знает, как получить полное разрешение 720p в виде байта
Массив?
«Что-то», кажется, уменьшает разрешение предварительного просмотра, чтобы соответствовать дисплею смартфона.
Привет
Joern