Bonjour,

Je realise en ce moment une application de traitement d'image sur android.
Lorsque je récupère une frame par la méthode :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
 
 
	Camera.PreviewCallback mPreviewCallback = new Camera.PreviewCallback() {
		@Override
	public void onPreviewFrame(byte[] data, Camera camera) {
Je me retrouve avec une image avec une rotation de 90 degres par rapport à la vue normale celle de mon surfaceView.
Déjà pour corriger l'orientation de la vue dans mon surfaceView, j'ai du faire les modifications suivantes :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
 
public void surfaceCreated(SurfaceHolder holder) {
		Log.e(TAG, "surfaceCreated");
		mCamera = Camera.open();
		mCamera.setDisplayOrientation(90);
 
		Camera.Parameters p = mCamera.getParameters();
	    p.set("jpeg-quality", 100);
	    p.setRotation(90);
	    p.setPictureFormat(PixelFormat.JPEG);
	    int w = p.getPreviewSize().width;
	    int h = p.getPreviewSize().height;
 
	    p.setPreviewSize(h, w);
	    mCamera.setParameters(p);
	}
Savez-vous comment je peux obtenir une image avec la bonne rotation dans mon callback ?

Sinon comment puis-je appliquer une rotation de 90 sur mon byte[] ?

Merci pour votre aide.