Я устанавливаю вращения для камеры:Поворот изображения с камеры андроида
stopPreview();
Camera.Parameters p = mCamera.getParameters();
p.setRotation(90);
mCamera.setParameters(p);
startPreview();
Фото взято, когда устройство находится в горизонтальном положении. Мне нужна фотография, повернутая по вертикали. Но когда я сохраняю jpeg, он никогда не вращается, он всегда горизонтальный.
protected void onJpegPicture(byte[] data, int width, int height) {
saveJpeg(data, file);
}
Я что-то упустил? Я не думаю, что мне нужно вручную повернуть фотографию после ее взятия. Я думаю, камера должна быть в состоянии сделать это для меня.
setRotation
параметр не имеет значения. Я пробовал все возможные значения (0, 90, 180, 270).
Теперь мне не нужно правильное вращение, я хочу вращение вообще - таким образом, я использовал 90 в качестве вращения (и пробовал другие постоянные значения). Это не работает на sony xperia. Я нашел в Интернете, что это обычная проблема с другими телефонами. Производители не выполняют требования к андроидам о ротации фотографий. Не имеет значения, если я делаю снимок, когда мой телефон ориентирован горизонтально или вертикально, и не имеет значения, какое вращение у меня установлено. Я всегда получаю ориентированное изображение по горизонтали. – Ari
Мы добавили лучшие тесты для этого в новых версиях Android, поэтому, по крайней мере, более новые устройства больше не должны выставлять эти проблемы. –
Я думаю, проблема в том, что iterpreting exif правильно. – Ari