Domanda

L'ho pubblicato sui forum degli sviluppatori Android, ma volevo contattare qui.

Una delle attività nella nostra app è stata scattare una foto. L'anteprima dell'immagine mostra il modo corretto sullo schermo in 1,5 & amp; 1.6, ma quando viene salvato, salva il jpg 90 ruotato.

Posso ruotarlo in tempo reale durante la visualizzazione e immagino di poterlo salvare una volta salvato. Il mio problema è che vorrei salvarlo correttamente quando si scatta la foto.

  

La mia app mentre è compilata in 1.5 funziona bene. Ho avuto alcuni problemi di memoria con      1.6 a causa della dimensione dell'immagine, che era strana a causa della dimensione dell'immagine aumentata      quando si scattano foto scattando una foto con il supporto per superficie / imagecapture      richiama. Mi sembra di aver corretto la ri-visualizzazione di quelle immagini ridimensionandole      usando una matrice bitmapfactory. Ma la mia fotocamera ora sta ruotando      tutto a 90 gradi. Sembra che il mio Override di surfaceChanged      non fa nulla, ed è qui che ho impostato la rotazione a 90 (non posso      ricorda perché, è stato 10 mesi fa!). Ho provato a ruotare il      parametri della telecamera parametri a 90 gradi, 0 gradi. Non sembra      fare qualcosa ... qualche pensiero?

È stato utile?

Soluzione

I driver della fotocamera non conoscono l'orientamento del dispositivo. In 1.5 e 1.6, devi chiamare parametri.set ("rotazione" gradi) per dire ai conducenti la rotazione prima di chiamare takePicture (). In 2.0, c'è una nuova API setRotation (vedi sotto). Nota che alcuni dispositivi ruotano le immagini per te e altri semplicemente impostano l'orientamento nell'intestazione EXIF.

http://developer.android.com /reference/android/hardware/Camera.Parameters.html#setRotation(int)

  

Imposta l'orientamento del dispositivo in gradi. Ad esempio, supponiamo che la posizione naturale del dispositivo sia orizzontale. Se l'utente scatta una foto in modalità orizzontale con risoluzione 2048x1536, la rotazione deve essere impostata su 0. Se l'utente ruota il telefono di 90 gradi in senso orario, la rotazione deve essere impostata su 90. Le applicazioni possono utilizzare OrientationEventListener per impostare questo parametro. Il driver della fotocamera può impostare l'orientamento nell'intestazione EXIF ??senza ruotare l'immagine. Oppure il driver può ruotare l'immagine e la miniatura EXIF. Se l'immagine Jpeg viene ruotata, l'orientamento nell'intestazione EXIF ??mancherà o 1 (la riga # 0 è in alto e la colonna # 0 è a sinistra).
   Parametri
   rotazione L'orientamento del dispositivo in gradi. La rotazione può essere solo 0, 90, 180 o 270

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top