2013-07-19 15 views
18

Używam Touch Touch i Phonegap, aby wyświetlić obraz zarejestrowany za pomocą kamery . Podczas robienia zdjęcia na iPhonie za pomocą cordova2.7.0, obraz jest rysowany z prawidłową orientacją. Ale używając samsung s3, obraz będzie pochylony o -90 ° (tylko dla portretów).Zdjęcie zrobione z galerii jest wyświetlane w innej orientacji podczas korzystania z phonegap w Androidzie

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

Używam powyższego kodu do robienia zdjęć. Zdjęcia portretowe wykonano z ekranów aparatu w prawidłowej orientacji, problem dotyczy tylko portretów wykonanych z galerii. Czy istnieje sposób na rozwiązanie tego problemu?

+0

Witam, Czy rozwiązałeś problem? –

Odpowiedz

14

Po prostu rozwiązał mój problem, dodając parametr encodingType. Teraz kod wygląda

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 }); 
+0

Nie działa w Samsung Edge S6. –

+0

Czy możesz wyjaśnić trochę w swoim numerze. – Linson

+0

Orientacja obrazu zmienia się w przypadku zdjęć przechwytywanych przez aparat Samsung krawędzi S6, A5 (domyślnie nie używa się wtyczki cordova). Działa dobrze na zrzut ekranu i zdjęcia zrobione aparatem (za pomocą wtyczki cordova). –

1

miałem ten problem z moim Samsung Galaxy S5, a także, ale przełączane encodingType z PNG do JPEG (w połączeniu z targetWidth) i teraz ma prawidłową orientację.

Jeden z komentujących na tym forum post wspomniał, że jest to spowodowane brakiem pamięci. 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; 
} 
4

To po prostu rozwiązać mój problem przez dodanie correctOrientation parametru. Teraz kod wygląda następująco:

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

Nowa aktualizacja wtyczki cordova, która rozwiązuje ten problem.

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

prostu ponownie zainstalować wtyczkę, tutaj jest rozwiązywanych one opublikowane:

Dodaj wsparcie orientacji dla PNG do Androida (zamyka # 45)

0

correctOrientation: true, dodać to jego pracować dla mnie

+0

To powinien być komentarz. –

0

Set allowEdit: true i correctOrientation: true na dowolnym urządzeniu.

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 
}); 
0

Wydaje się, że jest to problem specyficzny dla urządzenia. Na przykład za pomocą następującego kodu:

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); 

To działa na Nexusie 5 i orientuje zwrócony obraz poprawnie, jednak nie działa na Samsung Tab A i orientacja obrazu nie jest korygowany.

Jedynym ograniczeniem jest ustawienie wartości allowEdit na true, ponieważ edytowane zdjęcie jest zwracane we właściwej orientacji.

Powiązane problemy