android cordova sencha-touch android-camera

La imagen tomada de la galería se muestra en una orientación diferente mientras se usa phonegap en Android



cordova sencha-touch (7)

Establezca allowEdit: true y correctOrientation: true para cualquier dispositivo.

navigator.camera.getPicture(onSuccess, onFail, { quality: 60, destinationType: Camera.DestinationType.DATA_URL, allowEdit: true, correctOrientatin: true, encodingType: Camera.EncodingType.JPEG, sourceType: Camera.PictureSourceType.PHOTOLIBRARY, targetWidth: 3000 });

Estoy usando Sencha Touch y Phonegap para mostrar una imagen grabada con la cámara. Al tomar una foto en un iPhone a través de cordova2.7.0, la imagen se dibuja con la orientación correcta. Pero al usar Samsung S3, la imagen se inclinará en -90 ° (solo para imágenes de retrato).

navigator.camera.getPicture(onPhotoURISuccess, onFail, { quality: 25, destinationType: destinationType.FILE_URI, targetWidth: 120, targeHeight: 120, correctOrientation: true, sourceType: source });

Yo uso el código de arriba para tomar la foto. Las imágenes de retratos tomadas de las pantallas de la cámara en la orientación correcta, el problema ocurre solo para las imágenes de retratos tomadas de la galería. ¿Hay alguna manera de resolver este problema?


Esto parece ser un problema específico del dispositivo. Por ejemplo, con el siguiente código:

var options = { quality: 50, correctOrientation: true, allowEdit: false, destinationType: Camera.DestinationType.FILE_URI, sourceType: Camera.PictureSourceType.PHOTOLIBRARY, mediaType: Camera.MediaType.PICTURE, encodingType: Camera.EncodingType.JPEG }; navigator.camera.getPicture(success,failure,options);

Esto funciona en un Nexus 5 y orienta la imagen devuelta correctamente, sin embargo, no funciona en un Samsung Tab A y la orientación de la imagen no se corrige.

Mi única solución es establecer allowEdit en verdadero cuando la foto editada se devuelve en la orientación correcta.


Nueva actualización para el plugin de cordova que soluciona estos problemas.

cordova plugin rm org.apache.cordova.camera cordova plugin add https://github.com/apache/cordova-plugin-camera

simplemente vuelva a instalar el complemento, aquí están los arreglos que publicaron:

Añadir soporte de orientación para PNG a Android (cierra # 45)


Orientación correcta: verdadero, agregue este trabajo para mí


Simplemente resolvió mi problema agregando el parámetro correctOrientation. Ahora el código se ve como:

navigator.camera.getPicture(onPhotoURISuccess, onFail, { quality: 50, destinationType: destinationType.FILE_URI, correctOrientation: true, sourceType: source }); }


Simplemente resolvió mi problema agregando el parámetro encodingType. Ahora el código parece

var encodingType = navigator.camera.encodingType.PNG; var destinationType = navigator.camera.DestinationType; var destinationType = navigator.camera.DestinationType; var source = navigator.camera.PictureSourceType; navigator.camera.getPicture(onPhotoURISuccess, onFail, { quality: 50, destinationType: destinationType.FILE_URI, encodingType: encodingType.PNG, targetWidth: 120, targeHeight: 120, correctOrientation: true, sourceType: source });


También tenía este problema con mi Samsung Galaxy S5, pero cambié el tipo de codificación de PNG a JPEG (en combinación con un targetWidth) y ahora tiene la orientación correcta.

Uno de los comentaristas en esta publicación del foro mencionó que se debe haber quedado sin memoria. http://forum.ionicframework.com/t/camera-wrong-orientation-with-android/8583

try { bitmap = Bitmap.createBitmap(bitmap, 0, 0, bitmap.getWidth(), bitmap.getHeight(), matrix, true); this.orientationCorrected = true; } catch (OutOfMemoryError oom) { this.orientationCorrected = false; }