jQuery Mobile 및 PhoneGap을 사용하여 사용자가 사진을 찍어 화면에서보고 나서 궁극적으로 웹 사이트에 게시 할 서버 응용 프로그램에 업로드 할 수있는 응용 프로그램을 만듭니다. .PhoneGap : 응용 프로그램이 인물 사진을 찍을 때 충돌이 발생합니다.
가로 모드에서 사진을 찍으면 잘 작동하지만 세로 사진을 찍으면 응용 프로그램이 깨집니다. 아래의 코드 조각에서 볼 수 있듯이 correctOrientation 매개 변수를 사용하여 촬영 한 후 사진의 방향을 잡으려고합니다. 이 매개 변수가 없으면 응용 프로그램이 충돌하지 않지만 사진이 표시 될 때 잘못된 방향으로 표시됩니다.
지금은 Sony XPERIA android phone에서 테스트 중입니다.
다음은 작업을 담당하는 코드입니다.
function onPhotoFail(message) {
alert('Failed because: ' + message);
}
function onPhotoSuccess(imageURI) {
var $image = $("img#upload-image");
$image.attr("src", imageURI);
}
function capturePhoto() {
navigator.camera.getPicture(onPhotoSuccess, onPhotoFail, { quality: 50, destinationType: Camera.DestinationType.FILE_URI , correctOrientation: true });
}
여기 스택 추적입니다 : 나는 약간의 주위에 검색했던
E/AndroidRuntime(31760): FATAL EXCEPTION: main
E/AndroidRuntime(31760): java.lang.OutOfMemoryError: bitmap size exceeds VM budget
E/AndroidRuntime(31760): at android.graphics.Bitmap.nativeCreate(Native Method)
E/AndroidRuntime(31760): at android.graphics.Bitmap.createBitmap(Bitmap.java:477)
E/AndroidRuntime(31760): at android.graphics.Bitmap.createBitmap(Bitmap.java:444)
E/AndroidRuntime(31760): at org.apache.cordova.CameraLauncher.getRotatedBitmap(CameraLauncher.java:483)
E/AndroidRuntime(31760): at org.apache.cordova.CameraLauncher.onActivityResult(CameraLauncher.java:326)
E/AndroidRuntime(31760): at org.apache.cordova.DroidGap.onActivityResult(DroidGap.java:823)
E/AndroidRuntime(31760): at android.app.Activity.dispatchActivityResult(Activity.java:3908)
E/AndroidRuntime(31760): at android.app.ActivityThread.deliverResults(ActivityThread.java:2549)
E/AndroidRuntime(31760): at android.app.ActivityThread.handleSendResult(ActivityThread.java:2595)
E/AndroidRuntime(31760): at android.app.ActivityThread.access$2000(ActivityThread.java:121)
E/AndroidRuntime(31760): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:973)
E/AndroidRuntime(31760): at android.os.Handler.dispatchMessage(Handler.java:99)
E/AndroidRuntime(31760): at android.os.Looper.loop(Looper.java:130)
E/AndroidRuntime(31760): at android.app.ActivityThread.main(ActivityThread.java:3701)
E/AndroidRuntime(31760): at java.lang.reflect.Method.invokeNative(Native Method)
E/AndroidRuntime(31760): at java.lang.reflect.Method.invoke(Method.java:507)
E/AndroidRuntime(31760): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:866)
E/AndroidRuntime(31760): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:624)
E/AndroidRuntime(31760): at dalvik.system.NativeStart.main(Native Method)
, 나는 사람이 정확한 문제가 표시되지 않습니다. 어떤 도움을 주신다면
고마워요,하지만 그 속임수를하지 않는 것 같습니다. 원래 메시지를 편집하여 스택 추적을 추가했습니다. –
예, 메모리 부족 예외입니다. 적절한 방향으로 회전 할 수 있도록 이미지를 비트 맵에로드하면 너무 많은 메모리가 사용됩니다. –
주위에 어떤 방법이 있습니까? targetWidth와 targetHeight를 지정하면 오리엔테이션을 시도하기 전에 이미지 크기를 줄이니? –