Question

J'ai posté ceci sur les forums de développement Android, mais je voulais atteindre ici.

L'une des activités de notre application consistait à prendre une photo. L’aperçu de l’image montre le bon sens à l’écran dans 1.5 & amp; 1.6, mais une fois sauvegardé, le jpg 90 tourné est enregistré.

Je peux le faire pivoter en temps réel lors de l'affichage et je suppose que je pourrais le ré-enregistrer une fois enregistré. Mon problème est que je voudrais le sauvegarder correctement lors de la prise de vue.

  

Mon application compilée dans la version 1.5 fonctionne bien. J'ai eu des problèmes de mémoire avec      1,6 en raison de la taille de l'image, ce qui était étrange, car la taille de l'image a augmenté      lorsque vous prenez des photos en prenant une photo avec le support de surface / imagecapture      rappeler. Je semble avoir corrigé l'affichage de ces images en redimensionnant      les utilisant une matrice bitmapfactory. Mais ma caméra tourne maintenant      tout à 90 degrés. Il semble que mon dépassement de surfaceChanged      ne fait rien, ce qui est où je fixais la rotation à 90 (je ne peux pas      rappelez-vous pourquoi, c'était il y a 10 mois!). J'ai essayé de faire tourner le      paramètres de la caméra paramètres à 90 degrés, 0 degrés. Il ne semble pas      faire quelque chose ... des pensées?

Était-ce utile?

La solution

Les pilotes de l'appareil photo ne connaissent pas l'orientation du périphérique. Dans 1.5 et 1.6, vous devez appeler parameters.set ("rotation", degré) pour informer les pilotes de la rotation avant d'appeler takePicture (). En 2.0, il y a une nouvelle API setRotation (voir ci-dessous). Notez que certains appareils font pivoter l’ensemble des images et d’autres simplement définir l’orientation dans l’en-tête EXIF.

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

  

Définit l'orientation du périphérique en degrés. Par exemple, supposons que la position naturelle de l'appareil soit Paysage. Si l'utilisateur prend une photo en mode paysage en résolution 2048x1536, la rotation doit être définie sur 0. Si l'utilisateur fait pivoter le téléphone de 90 degrés dans le sens des aiguilles d'une montre, la rotation doit être définie sur 90. Les applications peuvent utiliser OrientationEventListener pour définir ce paramètre. Le pilote de la caméra peut définir l'orientation dans l'en-tête EXIF ??sans faire pivoter l'image. Ou bien le pilote peut faire pivoter la photo et la miniature EXIF. Si l'image Jpeg est pivotée, l'orientation dans l'en-tête EXIF ??sera manquante ou 1 (la rangée n ° 0 est en haut et la colonne n ° 0 est à gauche).
   Paramètres
   rotation L'orientation du périphérique en degrés. La rotation ne peut être que 0, 90, 180 ou 270

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top