1. 우선 메니페스트 내의 CaptureActivity 액티비티의 screen orientation을 portrait으로 변경해줍니다.
그리고 CameraManager 의 openDriver() 함수로 가셔서 theCamera = Camera.open(); 아래쪽에
theCamera.setDisplayOrientation(90); 을 추가시켜줍니다.
2. 카메라와 액티비티를 세로모드로 전환했어도 사진을 통해 찍힌 이미지는 여전이 가로입니다.
사진을 찍은 후 얻은 byte[] data를 세로로 전환해 줍니다.
DecodeHandler.java로 가시면 activity.getCameraManager().buildLuminanceSource(data, width, height);
를 호출하는 부분이 있을 겁니다. 그 이전 라인에 아래와 같이 추가해 줍니다.
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];
>
int tmp = width;
width = height;
height = tmp;
byte[]data를 회전하여 rotatedData에 저장하고 width와 height를 스왑해 줍니다.
그리고 buildLuminanceSource(rotatedData, width, height); 와 같이 바뀌어진 인자 값을 넘겨줍니다.
3. CameraManager.java로 다시 가셔서 getFramingRectInPreview()의 rect 관련 부분을 아래와 같이 바꿔 줍니다.
댓글을 작성하시려면 로그인을 하셔야지만 작성가능합니다.
[로그인하기] [회원가입하기]