Rotation image java

Résolu
kikilik Messages postés 26 Date d'inscription mardi 22 avril 2008 Statut Membre Dernière intervention 27 janvier 2010 - 10 mars 2009 à 13:21
coucou747 Messages postés 12303 Date d'inscription mardi 10 février 2004 Statut Membre Dernière intervention 30 juillet 2012 - 10 mars 2009 à 14:37
bonjour,
je travaille sur le traitement d'image en java et je ne sais pas comment inverser une image que je recupere sur disque. J'ai cherché comment le faire mais j'ai pas trouvé la fonction qui me le permet.
Merci de m'orienter ou de m'indiquer un tuto pour le traitement d'images java.

2 réponses

Twinuts Messages postés 5375 Date d'inscription dimanche 4 mai 2003 Statut Modérateur Dernière intervention 14 juin 2023 111
10 mars 2009 à 13:54
Salut,

regarde du coté de Graphic2D et de AffineTransform avec ça tu peux faire des rotations à souhait

------------------------------------
"On n'est pas au resto : ici on ne fait pas dans les plats tout cuits ..."

OoWORAoO
3
coucou747 Messages postés 12303 Date d'inscription mardi 10 février 2004 Statut Membre Dernière intervention 30 juillet 2012 44
10 mars 2009 à 14:37
salut

tu peux lire ces deux liens :

http://fr.wikipedia.org/wiki/Transformation_g%C3%A9om%C3%A9trique
http://java.sun.com/j2se/1.4.2/docs/api/java/awt/geom/AffineTransform.html

la transformation est donc (x, y) -> (m00x + m01y + m02, m10x + m11y + m12)

en math, t'as :

(x, y) -> (cos, sin) * [ (x, y) - (centreX, centreY) ] + (centreX, centreY)
ce qui donne :
(x, y) -> (cos, sin) * (x - centreX, y -centreY) + (centreX, centreY)
(x, y) -> (cos * (x - centreX) - sin * (y - centreY) + centreX , cos * (y - centreY) + sin * (x - centreX) + centreY)

(x, y) -> (cos * x - cos * centreX - sin * y + sin * centreY + centreX , cos * y - cos * centreY + sin * x - sin * centreX + centreY)

donc pour la partie affine :
M02 = centreX - cos * centreX + sin * centreY
M12 = centreY - sin * centreX - cos * centreY
et pour la partie lineaire :
M01 = cos
M11 = - sin
M02 = sin
M12 = cos

enfin je crois...

mais si tu ne veux pas t'embeter, tu peux regarder la fonction : getRotateInstance(double theta, double x, double y)
0
Rejoignez-nous