Вы можете повернуть необработанные данные следующим образом:
// Rotate the data for Portait Mode
byte[] rotatedData = new byte[data.length];
for (int y = 0; y < height; y++) {
for (int x = 0; x < width; x++)
rotatedData[x * height + height - y - 1] = data[x + y * width];
}
Где «ширина» и «высота» - это предварительно установленные размеры для изображения предварительного просмотра, используя:
Camera.Parameters parameters = camera.getParameters();
parameters.setPreviewSize(width, height);
camera.setParameters(parameters);
Затем вы можете соответствующим образом использовать повернутые данные.
Я использовал этот метод только для сканирования QR-кода, и он, кажется, работает отлично.Не уверен, как это может повлиять на другие приложения.