2017-10-12 1 views
1

Bien que l'API de l'appareil photo soit obsolète, il est plus simple de démarrer que Camera2. Mais le document ne semble pas être facile à comprendre (avec mes capacités de lecture). J'ai beaucoup cherché à comprendre. Mais il y a encore beaucoup de questions.Présentation de l'API de caméra

1.Quelle est l'orientation de la caméra? Y a-t-il une définition qui me manque? Il y a 4 dimensions (gauche, haut, droite, bas) de la caméra. Quand nous disons l'orientation, laquelle est utilisée et quel est l'objet relatif?

2.Pourquoi est-ce différent entre l'orientation de l'appareil photo et celle de l'appareil?

3.Pourriez-vous me dire comment comprendre l'algorithme donné dans le document Camera.setDisplayOrientation() et Camera.parameters.setRotation()? Il y a un exemple de code donné par document pour ces deux méthodes. Ces deux algorithmes utilisent tous les deux somme et différence d'orientation/rotation. Je peux l'utiliser directement dans mon projet. Mais qu'est-ce que cela signifie exactement? En outre, en prenant l'exemple de la caméra orientée vers l'arrière, la première utilise (info.orientation - degrees + 360) % 360, tandis que la seconde utilise (info.orientation + orientation) % 360. Confondre:/

Merci si vous pouvez répondre à l'une de ces questions ci-dessus ou simplement partager certaines de vos pensées et expériences.

Répondre

2

1. est la façon dont l'appareil est orienté dans votre appareil

2. orientation de l'appareil est l'orientation actuelle/rotation de l'appareil (portrait/paysage)

3.Camera.setDisplayOrientation()

affecte l'aperçu

Camera.parameters.setRotation()

affecte les images de résultats (jpeg etc.)


Documentation:

Camera.setDisplayOrientation()

Réglez le c rotation dans le sens des aiguilles d'une montre de l'affichage de l'aperçu en degrés. Cela affecte les cadres d'aperçu et l'image affichée après l'instantané. Cette méthode est utile pour les applications en mode portrait. Notez que l'affichage de l'aperçu des caméras frontales est inversé horizontalement avant la rotation , c'est-à-dire que l'image est réfléchie le long de l'axe vertical central du capteur de la caméra. Ainsi, les utilisateurs peuvent se voir comme regardant dans un miroir.

Camera.parameters.setRotation()

définit l'angle de rotation dans le sens horaire en degrés par rapport à l'orientation de la caméra. Cela affecte les images renvoyées par JPEG Camera.PictureCallback. Le pilote de l'appareil photo peut définir l'orientation dans l'en-tête EXIF ​​sans faire pivoter l'image. Ou le conducteur peut faire pivoter l'image et la vignette EXIF. Si l'image Jpeg est pivotée, l'orientation dans l'en-tête EXIF ​​sera manquante ou 1 (la ligne n ° 0 est en haut et la colonne n ° 0 est à gauche).

+0

Merci pour votre réponse. J'ai édité ma question. J'espère jeter un coup d'oeil. –

+0

Je ne sais pas ce que signifie "l'orientation de la caméra sur terre". Jamais entendu parler du. L'objet de référence pour l'orientation de la caméra est le téléphone lui-même en orientation portrait – FlanschiFox

+0

Mais «téléphone lui-même en orientation portrait» est l'orientation du téléphone qui n'est pas «orientation de la caméra». En outre, je supprime simplement «sur terre» en question. –