Почему размер массива байтов данных различен для onPictureTaken (байт [] данные, камера камеры) и onPreviewFrame (байт [] данные, камера камеры). Первый имеет исходное изображение и, следовательно, дает мне чистый образ, а последний дает мне пикселированное изображение. Я не использую onPictureTaken, потому что иногда это не срабатывает. Если мой размер изображения составляет 1600 х 1400 и размер экрана составляет 800 х 480 onPictureTaken дает мне 1600 х 1400 и onPreviewFrame дает мне 800 х 480данные байт размер массива разный для onPictureTaken и onPreviewFrame
Это мой код:
mCamera.setOneShotPreviewCallback(new Camera.PreviewCallback() {
@Override
public void onPreviewFrame(byte[] data, Camera camera) {
Camera.Parameters parameters = camera.getParameters();
int format = parameters.getPreviewFormat();
//YUV formats require more conversion
if (format == ImageFormat.NV21 || format == ImageFormat.YUY2 || format == ImageFormat.NV16) {
int w = parameters.getPreviewSize().width;
int h = parameters.getPreviewSize().height;
// Get the YuV image
YuvImage yuv_image = new YuvImage(data, format, w, h, null);
}
У меня есть застрял в этом вопросе в течение одной недели.
P.S. - В случае отрицательных оценок, пожалуйста, укажите причину
есть способ преобразования закодированного массива PreviewFrame в onPictureTaken? а также максимальный размер предварительного просмотра - 800 x 480. В пряниках иногда очень редко onPictureTaken не запускается. –
@Rohit_Ramkumar: «Есть ли способ конвертировать закодированный массив PreviewFrame в onPictureTaken?» - 'onPictureTaken()' является методом. Невозможно сделать предварительный просмотр и преобразовать его в Java-метод. «а также максимальный поддерживаемый размер предварительного просмотра - 800 x 480» - возможно, на вашем устройстве, но размеры предварительного просмотра зависят от устройства. – CommonsWare
Единственное решение onPictureTaken()? Я пытаюсь сфотографировать документы и загрузить их. Следовательно, документы должны быть удобочитаемыми. –