Accueil de l'archive Service proposé par Hervé AGNOUX

From:           	"Ludovic d'Eurveilher" <ludo_de@club-internet.fr>
To:             	<java@u-strasbg.fr>
Subject:        	Rotation d'une image
Date sent:      	Tue, 24 Oct 2000 21:40:37 +0200
Send reply to:  	java@u-strasbg.fr

        Bonsoir à tous,

Je voudrais savoir s'il n'est pas trop laborieux de faire pivoter une
image à 90°.

Si cette opération n'est pas trop lourde, pourriez-vous me donner une
piste ?

Merci d'avance.

     

Date sent:      	Wed, 25 Oct 2000 00:19:18 -0700 (PDT)
From:           	vincent dupont <berzerk666@yahoo.com>
Subject:        	Re: Rotation d'une image
To:             	java@u-strasbg.fr
Send reply to:  	java@u-strasbg.fr

salut,

je pense qu'il existe des procédures toutes faites
dans le package Graphics2D. Je crsoi avoir vu une demo
sur le tutoriel officiel de Sun. Je vérifie si j'ai
plus d'info...


--- Ludovic d'Eurveilher <ludo_de@club-internet.fr>
wrote:
>         Bonsoir à tous,
> 
> Je voudrais savoir s'il n'est pas trop laborieux de
> faire pivoter une image à 90°.
> 
> Si cette opération n'est pas trop lourde,
> pourriez-vous me donner une piste ?
> 
> Merci d'avance.
> 
> 


__________________________________________________
Do You Yahoo!?
Yahoo! Messenger - Talk while you surf!  It's FREE.
http://im.yahoo.com/

     

Date sent:      	Wed, 25 Oct 2000 00:40:04 -0700 (PDT)
From:           	vincent dupont <berzerk666@yahoo.com>
Subject:        	Re: Rotation d'une image
To:             	java@u-strasbg.fr
Send reply to:  	java@u-strasbg.fr

voir le lien
:http://java.sun.com/docs/books/tutorial/2d/display/transforming.html

il y a une applet de demo avec le code source à
:http://java.sun.com/docs/books/tutorial/2d/display/Transform.html

apparement, il faut creer une instance de
AffineTransform at = new AffineTransform();
(voir l'API) et alors on peut utiliser une methode
toute prete de Graphics2D :
at.rotate(Math.toRadians(45));

tu devrais aller chercher le code source pour y voir
plus clair, mais ça n'a pas l'air très compliqué!!

a+ et bonne chance
vincent


--- vincent dupont <berzerk666@yahoo.com> wrote:
> salut,
> 
> je pense qu'il existe des procédures toutes faites
> dans le package Graphics2D. Je crsoi avoir vu une
> demo
> sur le tutoriel officiel de Sun. Je vérifie si j'ai
> plus d'info...
> 
> 
> --- Ludovic d'Eurveilher <ludo_de@club-internet.fr>
> wrote:
> >         Bonsoir à tous,
> > 
> > Je voudrais savoir s'il n'est pas trop laborieux
> de
> > faire pivoter une image à 90°.
> > 
> > Si cette opération n'est pas trop lourde,
> > pourriez-vous me donner une piste ?
> > 
> > Merci d'avance.
> > 
> > 
> 
> 
> __________________________________________________
> Do You Yahoo!?
> Yahoo! Messenger - Talk while you surf!  It's FREE.
> http://im.yahoo.com/


__________________________________________________
Do You Yahoo!?
Yahoo! Messenger - Talk while you surf!  It's FREE.
http://im.yahoo.com/

     

To:             	java@u-strasbg.fr
Subject:        	Re: Rotation d'une image
From:           	Rodrigo Reyes <rodrigor@in-fusio.com>
Date sent:      	25 Oct 2000 09:55:22 +0200
Send reply to:  	java@u-strasbg.fr

vincent dupont <berzerk666@yahoo.com> writes:

> apparement, il faut creer une instance de
> AffineTransform at = new AffineTransform();
> (voir l'API) et alors on peut utiliser une methode
> toute prete de Graphics2D :
> at.rotate(Math.toRadians(45));

Je me permet de compléter la réponse : si la rotation est toujours de 90°,
il est sûrement plus efficace de faire la rotation soi-même, sans passer
par une méthode générique de transformation. Les rotations à 90, 180, 270
ont ceci de particulier qu'elles peuvent être très rapides à réaliser. Les
rotations à 360 étant évidemment les plus faciles :-)

-- 
Rodrigo

     

From:           	"Tomsoft" <tomsoft@iname.com>
To:             	<java@u-strasbg.fr>
Subject:        	RE: Rotation d'une image
Date sent:      	Fri, 27 Oct 2000 12:22:03 +0200
Send reply to:  	java@u-strasbg.fr

  Remarque:

* rapide en temps d'execution, mais peut etre pas en temps de codage par
rapport a la solution de rotation?

* qui dit que le JDK n'optimize pas deja les rotations de 90/180/270/360?

-----Message d'origine-----
De : Rodrigo Reyes [mailto:rodrigor@in-fusio.com]
Envoyé : mercredi 25 octobre 2000 09:55
À : java@u-strasbg.fr
Objet : Re: Rotation d'une image


vincent dupont <berzerk666@yahoo.com> writes:

> apparement, il faut creer une instance de
> AffineTransform at = new AffineTransform();
> (voir l'API) et alors on peut utiliser une methode
> toute prete de Graphics2D :
> at.rotate(Math.toRadians(45));

Je me permet de compléter la réponse : si la rotation est toujours de 90°,
il est sûrement plus efficace de faire la rotation soi-même, sans passer
par une méthode générique de transformation. Les rotations à 90, 180, 270
ont ceci de particulier qu'elles peuvent être très rapides à réaliser. Les
rotations à 360 étant évidemment les plus faciles :-)

--
Rodrigo

     

Date sent:      	Fri, 27 Oct 2000 13:01:13 +0200
From:           	Guillaume Desnoix <guillaume-desnoix@memoire.com>
To:             	java@u-strasbg.fr
Subject:        	Re: Rotation d'une image
Send reply to:  	java@u-strasbg.fr

Tomsoft:

> * rapide en temps d'execution, mais peut etre pas en temps de codage par
> rapport a la solution de rotation?

Coder une telle rotation peut se faire en une petite demi-heure, plus qqs
heures pour l'optimiser (reduire la quantite de memoire principalement).
Par contre le gain de performance est potentiellement tres important. 

> * qui dit que le JDK n'optimize pas deja les rotations de
> 90/180/270/360?

cf. src

En fait, la question la plus importante est: pour quel usage ?
Affichage, sauvegarde, traitement ? C'est l'usage prevu qui permettra de
choisir le bon algo parmi les 3 que je vois a priori: - Graphics2D +
AffineTransform (plutot destine qu'a l'affichage et si angle quelconque) -
PixelGrabber + manipulation du tableau d'octets (a priori celle que je
choisirais) - ImageFilter (si des traitements sont prevus ensuite)

Le probleme de 2 reste l'occupation memoire (on duplique), l'utilisation
d'un ImageFilter doit pourvoir eviter ce probleme.

Guillaume

PS: Il y a deux ans il n'y avait pas Graphics2D et j'ai du ecrire une
methode qui affiche une image en la tournant d'un angle quelconque. Ca
utilise bresenham et c'est rapide. Ca peut etre une quatrieme possibilite
si on veut des angles quelconques.

     

To:             	java@u-strasbg.fr
Subject:        	Re: Rotation d'une image
From:           	Rodrigo Reyes <rodrigor@in-fusio.com>
Date sent:      	27 Oct 2000 15:29:39 +0200
Send reply to:  	java@u-strasbg.fr

Guillaume Desnoix <guillaume-desnoix@memoire.com> writes:

> Tomsoft:
> > * qui dit que le JDK n'optimize pas deja les rotations de
> > 90/180/270/360?
> cf. src

 Pas seulement. Il n'est pas possible d'optimiser les rotations à
 90/180/270, et même 360 (sic!), pour la simple raison que ces
 chiffres exacts n'existent pas dans la représentation à virgule
 flottante utilisée par Java. On peut bricoler, bien sûr, mais rien
 faire de sérieux (à mon sens) pour un bibliothèque visant à une
 utilisation générique. Si je veux faire une rotation à 89.999999...°, je
 n'ai peut-être pas forcément envie de me retrouver avec une rotation à
 90°, simplement parce que ce n'est pas ce que j'ai demandé (même si
 effectivement on ne verra pas forcément la différence sur des images de
 taille raisonnable, etc.)

> En fait, la question la plus importante est: pour quel usage ?

 Exactement.

-- 
Rodrigo


C'est fini ! Retour à l'accueil de la pseudo-archive