inverser une image par rapport à l'axe X (effet miroir)

Le
Jean-Marie
Bonjour

je cherche le moyen d'inverser une image par rapport à l'axe des X
(effet miroir mais de haut en bas, pas de gauche à droite)
quelqu'un a-t'il une piste ?

exp :

| |
| |
|
(axe des X)
|
| |
| |


merci

jean-marie
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
Mayeul
Le #19570421
Jean-Marie wrote:
Bonjour

je cherche le moyen d'inverser une image par rapport à l'axe des X
(effet miroir mais de haut en bas, pas de gauche à droite)
quelqu'un a-t'il une piste ?

exp :

| |
| |
|
--------- (axe des X)
|
| |
| |


merci

jean-marie



Je dirais qu'il faut commencer par obtenir l'image sous forme de
BufferedImage, puis déplacer les pixels ligne par ligne. La ligne du
haut en base, la ligne du bas en haut, et on recommence avec les
secondes lignes.
--
Mayeul
Samuel Devulder
Le #19570551
Jean-Marie a écrit :
Bonjour

je cherche le moyen d'inverser une image par rapport à l'axe des X
(effet miroir mais de haut en bas, pas de gauche à droite)



Je n'y connais pas grand chose, mais il me semble que ces trucs de
zoom/translation/rotations/inversions sont totalement gérées au niveau
de la matrice de transformation associée au Graphic Context (GC).

En draw2d:
http://java.sun.com/j2se/1.4.2/docs/api/java/awt/geom/AffineTransform.html

En Swt:
http://help.eclipse.org/help32/index.jsp?topic=/org.eclipse.platform.doc.isv/reference/api/org/eclipse/swt/graphics/Transform.html
http://www.java2s.com/Tutorial/Java/0300__SWT-2D-Graphics/TransformReflectaroundthexyaxis.htm

sam.
Jean-Marie
Le #19571701
merci pour l'info ;
en cherchant sur le net j'ai trouvé :
AffineTransform symmetryX = AffineTransform.getScaleInstance(1, -1);
permettant d'inverser par rapport à l'axe des X, ce qui résout en partie
le pb puisque l'inversion se fait par rapport à un axe horizontale qui
n'est pas à la bonne hauteur

avec l'aide d'un matheux j'ai pu trouver les bons paramètres de la
matrice :
AffineTransform symmetryX = new AffineTransform(1, 0, 0, -1, 0, 2*ymax);

ymax étant l'ordonnée du point en haut en gauche du rectangle englobant
mon image ; ce "2*ymax" est lié à mon contexte mais les autres
paramètres ne devraient pas changer

JM

Samuel Devulder a écrit :
Jean-Marie a écrit :
Bonjour

je cherche le moyen d'inverser une image par rapport à l'axe des X
(effet miroir mais de haut en bas, pas de gauche à droite)



Je n'y connais pas grand chose, mais il me semble que ces trucs de
zoom/translation/rotations/inversions sont totalement gérées au niveau
de la matrice de transformation associée au Graphic Context (GC).

En draw2d:
http://java.sun.com/j2se/1.4.2/docs/api/java/awt/geom/AffineTransform.html

En Swt:
http://help.eclipse.org/help32/index.jsp?topic=/org.eclipse.platform.doc.isv/reference/api/org/eclipse/swt/graphics/Transform.html

http://www.java2s.com/Tutorial/Java/0300__SWT-2D-Graphics/TransformReflectaroundthexyaxis.htm


sam.


Samuel Devulder
Le #19572661
Jean-Marie a écrit :
merci pour l'info ;
en cherchant sur le net j'ai trouvé :
AffineTransform symmetryX = AffineTransform.getScaleInstance(1, -1);
permettant d'inverser par rapport à l'axe des X, ce qui résout en partie
le pb puisque l'inversion se fait par rapport à un axe horizontale qui
n'est pas à la bonne hauteur

avec l'aide d'un matheux j'ai pu trouver les bons paramètres de la
matrice :
AffineTransform symmetryX = new AffineTransform(1, 0, 0, -1, 0, 2*ymax);

ymax étant l'ordonnée du point en haut en gauche du rectangle englobant
mon image ; ce "2*ymax" est lié à mon contexte mais les autres
paramètres ne devraient pas changer



Tu pouvais aussi composer les transformations.. en utilisant les
méthodes .translate() et .scale() sur l'instance.
Publicité
Poster une réponse
Anonyme