2012-03-28 16 views
8

I opracowali aplikację za pomocą telefonu Gap wersję 0.9.3 ...Telefon orientacja aparatu Gap

Kiedy otworzyć aparat w mojej aplikacji, zawsze otwiera się w trybie poziomym i na wychwytywanie, obraz jest zwracane w formacie poziomym ...

Jak mogę zmienić tryb kamery do portretu

navigator.camera.getPicture(onsuccess, fail, {quality: 45,destinationType : Camera.DestinationType.DATA_URL, sourceType: src},img_id); 

function onsuccess(imageData) { 
    localStorage.setItem("image_captured","Yes"); 
    $('#'+imgID).attr('src', 'data:image/jpeg;base64,' + imageData); 
    $("#"+imgID+"_IMG").attr('src', 'data:image/jpeg;base64,' + imageData); 
} 

w oczywisty miałem wzmianka:

<activity android:name="com.android.camera.Camera" 
    android:screenOrientation="portrait"> 
</activity> 

proszę mi pomóc w tym ...

+0

dlaczego nie u zaktualizowania go do conajmniej 1,0 ... – ghostCoder

+0

miałem stworzył własny plugin dla spinner .. ta wtyczka nie działa w wersji 1.0 lub nowszej. Tak więc naprawiono ją na 0.9.3, gdzie moja wtyczka działa dobrze .. – Sandy09

+0

http://stackoverflow.com/questions/9841742/selection-option-in- phonegap-not-working-proper .. to kolejny problem w mojej aplikacji .. – Sandy09

Odpowiedz

7

orientacji zdjęcia nie są przechowywane po powrocie obrazu w formacie base64 (wszystkie dane EXIF ​​jest usuwany).

Powinieneś używać przyspieszeniomierza lub orientacji ekranu, aby "wiedzieć", czy zdjęcie zostało zrobione portretowo lub poziomo, a następnie wyświetlić je odpowiednio.

18

Spróbuj: correctOrientation: prawdziwy

function getPhoto(source) { 

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

} 
+2

correctOrientation jest obecnie ignorowane na większości urządzeń (android w zestawie) –

+0

@ PerHornshøj- Schierbeck Mam również do czynienia z problemem, że zdjęcie zrobione w trybie portretu jest zwracane w trybie poziomym, gdy próbuję wyświetlić go w HTML zaraz po zrobieniu zdjęcia. Jak to naprawić? "correctOrientation" nie pomaga i wydaje się być ignorowane (Emulator/Nexus i Galaxy S3), to prawda ... –

+0

@PhilippRieber Umieszczam moje rozwiązanie we własnym poście ... –

0

Mam rozwiązać mój problem mój zapisu jako plik url zamiast. Plik zostanie umieszczony w folderze tymczasowym wraz z poprawnymi danymi EXIF. Niektóre urządzenia mogą wymagać ręcznego usuwania plików podczas zamykania aplikacji.

Podczas przywoływania adresu URL pliku zamiast danych, img wydaje się poprawnie wyświetlany.

6

Parametr "correctOrientation" działa dobrze dla mnie - ale tylko wtedy, gdy używasz parametrów "targetWidth" i "targetHeight" (np. Ustaw je na "800"). Wygląda na to, że niektóre urządzenia mogą nie mieć wystarczającej ilości pamięci, aby obrócić obraz w pełnej rozdzielczości.

Aktualizacja: Oto miły artykuł przydatnych informacji na temat pamięci, skalowanie i zagadnień EXIF ​​z PhoneGap kod aparatu: http://simonmacdonald.blogspot.ca/2012/07/change-to-camera-code-in-phonegap-190.html

+0

Miłe znalezisko. Nadal nie zawsze działa dla mnie ustawienie wielkości. Czy może być związana z wersją? Na 4.3 tutaj ... –

+0

Dzięki, używam aplikacji i miałem ten sam problem na Androidzie 4.4, twoje rozwiązanie działało (ładuję obraz jako URL danych). –

+0

doskonały.Parametr correctOrientation działa dla mnie wraz z targetWidth i targetHeight. Dzięki wielkie – Sarah