문제

나는 이것을 안드로이드 개발자 포럼에 게시했지만 여기에 연락하고 싶었습니다.

우리 앱의 활동 중 하나는 사진을 찍는 것이었습니다.사진 미리보기는 1.5, 1.6에서는 화면상에는 정확하게 나오나, 저장시에는 jpg 90을 회전시켜서 저장합니다.

표시할 때 실시간으로 회전할 수 있고, 한 번 저장하면 다시 저장할 수도 있을 것 같아요.내 문제는 사진을 찍을 때 올바르게 저장하고 싶다는 것입니다.

1.5에서 컴파일된 내 앱은 정상적으로 작동합니다.이미지 크기로 인해 1.6의 메모리 문제가 있었는데, 이상한 B/ C는 표면 홀더/ imagecapture 콜백으로 사진을 찍어 사진을 찍을 때 이미지 크기가 증가했습니다.BitMapFactory 행렬을 사용하여 크기를 조정하여 해당 이미지를 재발하는 고정 된 것 같습니다.그러나 내 카메라는 이제 모든 것을 90도 회전하고 있습니다.내 override of surfaceChanged 인 것 같습니다. 아무것도하지 않습니다.이 작업은 회전을 90으로 설정 한 곳입니다 ( 왜 그랬는지 기억하세요, 10개월 전이었습니다!).나는 회전을 시도했다. 카메라 매개변수는 90도, 0도에서 매개변수를 설정합니다.아닌 것 같습니다 뭐든지 할 수 있습니다 ...이견있는 사람?

도움이 되었습니까?

해결책

카메라 드라이버는 장치의 방향을 모릅니다.1.5 및 1.6에서는 takePicture()를 호출하기 전에 매개변수.set("rotation", Degree)를 호출하여 드라이버에 회전에 대해 알려야 합니다.2.0에는 새로운 API setRotation이 있습니다(아래 참조).일부 장치는 전체 사진을 회전하고 일부 장치는 EXIF ​​헤더에서 방향을 설정합니다.

http://developer.android.com/reference/android/hardware/Camera.Parameters.html#setRotation(int)

장치의 방향을 각도 단위로 설정합니다.예를 들어 장치의 자연스러운 위치가 가로 방향이라고 가정해 보겠습니다.사용자가 2048x1536 해상도의 가로 모드로 사진을 찍는 경우 회전을 0으로 설정해야 합니다.사용자가 전화기를 시계 방향으로 90도 회전한 경우 회전은 90으로 설정되어야 합니다.애플리케이션은 OrientationEventListener를 사용하여 이 매개변수를 설정할 수 있습니다.카메라 드라이버는 사진을 회전하지 않고 EXIF ​​헤더에서 방향을 설정할 수 있습니다.또는 드라이버가 사진과 EXIF ​​썸네일을 회전할 수도 있습니다.Jpeg 사진이 회전되면 EXIF ​​헤더의 방향이 누락되거나 1이 됩니다(행 #0은 위쪽, 열 #0은 왼쪽).
매개변수
회전 장치의 방향(도)입니다.회전은 0, 90, 180 또는 270만 가능합니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top