Définir la taille de l'image générée par la caméra pour une prévisualisation

 

Pour prévisualiser une photo ou une vidéo, il faut une surface de prévisualisation. La caméra envoi sur cette surface une image dont la taille pourra être modifiée. Mais cette image restituée par la caméra ne peut pas avoir n'importe quelle taille (La surface pourra elle avoir la taille qu'elle veut).

Pour récupérer la liste des tailles d'une image prévisualisation restituée par une caméra, vous utiliserez:

camera.getParameters().getSupportedPreviewSizes() qui retourne une liste d'instances de type Size.

Vous obtenez ainsi les largeur et hauteur autorisées et vous pourrez prendre la taille la plus adaptée à votre surface pour le rendu.

Camera.Parameters parameters = camera.getParameters();

List<Size> localSizes = parameters.getSupportedPreviewSizes();
for (Size taille:localSizes)
{


Log.d ("Liste des tailles de prévisualisation supportées", "Size:" + taille.width + "/" + taille.height);


}

Vous pourrez ensuite affecter la taille que vous aurez choisi dans la liste en utilisant un code comme celui-ci:

Récupération des paramètres de la caméra, puis modification de la taille de l'image de prévisualisation pour enfin envoyer le tout à la caméra.


parameters.setPreviewSize(width, height);
camera.setParameters(parameters);

Il est important de relancer camera.startPreview() pour que les modifications prennent effets et permettre par exemple de nouveau la prise de photos.

Image non trouvée !Si vous modifiez ces valeurs, vous devriez aussi modifier la largeur/hauteur de la vignette et de l'image, surtout pour prendre en compte l'orientation de l'appareil !