Précédent   Forum des professionnels en informatique > Java > Général Java > Java & Mobiles > Android
Android Forum d'entraide sur Android, la plateforme mobile de Google pour téléphones portables et Smartphones. Avant de poster -> FAQ Android
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 06/02/2012, 15h14   #1
Membre habitué
 
Développeur multimédia
Inscription : juin 2009
Messages : 128
Détails du profil
Informations professionnelles :
Activité : Développeur multimédia

Informations forums :
Inscription : juin 2009
Messages : 128
Points : 148
Points : 148
Par défaut Scale et crop d'une preview Camera

Hello,

Je cherche à affecter la preview d'une front cam sur une SurfaceView. J'arrive à afficher et à enregistrer le flux, en revanche ce que je ne sais pas faire, c'est éviter la déformation de la vidéo.

Sur mon Galaxy, ma SurfaceView prends tout l'écran (800x480), mais la front cam n'enregistre qu'en 640x480... Donc mon image est déformé.
Ce que je cherche à faire, c'est étirer la vidéo pour faire un 800x600 (même ratio que la résolution de la caméra), puis l'appliquer à ma SurfaceView avec un léger décalage en hauteur de 60px (pour recentrer la vue)

J'ai bien tenté ceci
Code CameraPreview.java extends SurfaceView implements SurfaceHolder.Callback :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
 
@Override
public void surfaceCreated(SurfaceHolder holder) {
	try{
	setCameraDisplayOrientation(recActivity, recActivity.cameraId, mCamera);
	Camera.Parameters parameters= mCamera.getParameters();
	 parameters.setPreviewSize(800, 600);
	 mCamera.setParameters(parameters);
 
	 mCamera.setPreviewDisplay(holder);
	 mCamera.startPreview();
	}catch (IOException e) {
		Log.d("CameraPreview","Error setting camera preview: " + e.getMessage());
	}
}
Mais à priori, le système n'aime pas L'apli crash...

Comment feriez vous cela?
Merci de votre aide
fazermokeur est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/02/2012, 14h45   #2
Responsable Android
 
Avatar de Feanorin
 
Inscription : avril 2004
Messages : 2 415
Détails du profil
Informations forums :
Inscription : avril 2004
Messages : 2 415
Points : 3 538
Points : 3 538
Envoyer un message via Skype™ à Feanorin
Bonjour,

Tu peux récupérer les formats supporté par la Camera du téléphones
http://developer.android.com/referen...eviewFormats()

Tu as un bon tutoriel pour utiliser cette fonction
http://developer.android.com/resourc...raPreview.html
Feanorin est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 08/02/2012, 16h27   #3
Membre habitué
 
Développeur multimédia
Inscription : juin 2009
Messages : 128
Détails du profil
Informations professionnelles :
Activité : Développeur multimédia

Informations forums :
Inscription : juin 2009
Messages : 128
Points : 148
Points : 148
Merci de ta réponse

Apparement, sur le galaxy S2, les getSupportedPreviewSizes sont limitées à 640x480, 320x240, 352x288 et 176x144. Des formats plus proches du 4/3 que de mon 800x480...

Au final la méthode du lien que tu m'a cité permet de choisir la meilleur résolution parmis ces 4 là, mais pas de faire ce dont j'ai besoin. J'ai joint 3 images pour illustré mon besoin.
La première montre ce que j'obtiens avec la méthode de ton lien

La seconde montre ce que j'obtiens avec ma méthode actuelle (déformation d'image... c'est mal)

Et celle ci montre ce que je voudrais, au final, une image de 800x600 px mais dont 60 pixels en haut et en bas seraient cropés...


Merci de votre aide
fazermokeur est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 01h36.


 
 
 
 
Partenaires

Hébergement Web