Rotation d'une image

Le
fredg59
Existe-t-il un moyen d'effectuer une rotation sur une image sans avoir
charger les diffrents tats de ces images ?
Vos réponses
Trier par : date / pertinence
LE TROLL
Le #15344631
Bonjour,

Une image dans quoi?
Si elle est dessinée, avec sinus, cosinus, tu peux créer une rotation...

--
Merci beaucoup, au revoir et à bientôt :o)
------
Site éditeur MES ROMANS édités
http://www.manuscritdepot.com/a.joseph-attila-pusztay.1.htm
Site de MES LOGICIELS
http://irolog.free.fr
mon adresse EMail
http://irolog.free.fr/ecrire/index.htm
------------------------------------------------------------------------------------
"fredg59"
Existe-t-il un moyen d'effectuer une rotation sur une image sans avoir
à charger les différents états de ces images ?
fredg59
Le #15344511
Merci, j'aurai su le faire.
En fait, l'image dont je parle est au format jpg (ou bmp, etc)




LE TROLL a écrit :

Bonjour,

Une image dans quoi?
Si elle est dessinée, avec sinus, cosinus, tu peux créer une rotation ...

--
Merci beaucoup, au revoir et à bientôt :o)
------
Site éditeur MES ROMANS édités
http://www.manuscritdepot.com/a.joseph-attila-pusztay.1.htm
Site de MES LOGICIELS
http://irolog.free.fr
mon adresse EMail
http://irolog.free.fr/ecrire/index.htm
------------------------------------------------------------------------- -----------
"fredg59"
Existe-t-il un moyen d'effectuer une rotation sur une image sans avoir
à charger les différents états de ces images ?


Jean-marc
Le #15344501
>"fredg59" >
Merci, j'aurai su le faire.
En fait, l'image dont je parle est au format jpg (ou bmp, etc)




Hello,

Il y a plein de fonction dans l'API Windows pour
faire cela. On peut aussi utiliser GDI, GDI+, etc.

Je ne suis pas un expert du domaine, mais il y a d'autres
intervenants ici qui connaissent très bien ce domaine.

En attendant qu'ils se manifestent (ohé, Fraçois!!), ce
lien est intéressant, il illustre comment le faire en utilisant
GDI+:
http://www.vbfrance.com/codes/ROTATION-IMAGE-AVEC-GDI-EXEMPLES-QUESTIONS_39902.aspx

--
Jean-marc Noury (jean_marc_n2)
Microsoft MVP - Visual Basic
mailto: remove '_no_spam_' ;
FAQ VB: http://faq.vb.free.fr/
Picalausa François
Le #15344431
"Jean-marc" de news: 45546e5f$0$1122$
>"fredg59"
>
Merci, j'aurai su le faire.
En fait, l'image dont je parle est au format jpg (ou bmp, etc)


Il y a plein de fonction dans l'API Windows pour
faire cela. On peut aussi utiliser GDI, GDI+, etc.

Je ne suis pas un expert du domaine, mais il y a d'autres
intervenants ici qui connaissent très bien ce domaine.

En attendant qu'ils se manifestent (ohé, Fraçois!!), ce



Hello, (puisqu'on m'a appelé ;-) )

Personellement, j'aurais aussi pioché pour GDI+ : simple à mettre en oeuvre,
efficace, et plus encore (mais à partir de win 98 uniquement... win 95
s'abstenir)!

Sinon, dans les réponses qui ont traditionellement été données:
La KB comporte deux exemples:
http://support.microsoft.com/?kbid€406 (il est ici FORTEMENT conseillé de
remplacer des Point et PSet trop lents pour des GetBitmapBits et
SetBitmapBits, en travaillant offscreen et sans doevents)
http://support.microsoft.com/?kbid6260 (par 90° uniquement, et le BitBlt
pourrait tout aussi certainement être remplacé par les mêmes fonctions de
précédemment)

Si la compatibilité 9x/Me n'est pas importante, on peut aussi utiliser
PlgBlt en calculant le paralellogramme de destination.
Dans ces mêmes conditions, mais encore plus facilement, on peut utiliser les
"XFORM", comme illustré par Mike D. Sutton:
http://edais.mvps.org/ > Files > Demo applications + source code >
Coordinate Spaces and Transformations

--
Picalausa François
Jean-marc
Le #15344401
"Picalausa François"
"Jean-marc" message de news: 45546e5f$0$1122$
>"fredg59"
>
Merci, j'aurai su le faire.
En fait, l'image dont je parle est au format jpg (ou bmp, etc)


Il y a plein de fonction dans l'API Windows pour
faire cela. On peut aussi utiliser GDI, GDI+, etc.

Je ne suis pas un expert du domaine, mais il y a d'autres
intervenants ici qui connaissent très bien ce domaine.

En attendant qu'ils se manifestent (ohé, Fraçois!!), ce



Hello, (puisqu'on m'a appelé ;-) )





Moi je vous dis: C'est magique!!


--
Jean-marc Noury (jean_marc_n2)
Microsoft MVP - Visual Basic
touriste
Le #15346511
Bonjour,

GDI+ (hum .... un peu lent, c'est amha plus efficace d'utiliser les DIBs
et la GDI)

Le principe de rotation de la KB n'est pas applicable s'il on veut une
transformation géomètrique correcte et ne pas obtenir de trou dans
l'image(particulièrement visibles sur du noir et blanc).
Une image étant un rectangle (cotés paralléles aux axes) composée de
pixels, sa transformée par une rotation sera elle aussi un rectangle
formé de pixels. Mais la transformée d'un rectangle par une rotation
n'est pas un rectangle dont les bords sont parralléles aux axes.
Mathématiquement l'espace de travail est discret (non continu et fini).
On effectue donc un arrondi (une discréditation) pour obtenir l'image
tournée. Donc dans le cas précis de l'image la rotation n'est pas une
fonction bijective.
La méthode a employer est de partir du résultat et de calculer la valeur
du pixel dans l'image d'origine, et pour tenir compte des compensations
on calcul la valeur du pixel d'arrivé comme étant la moyenne des valeur
des pixels entourant le pixel origine. On peut utilisé la méthode
LANDCOZ (moyenne des cinq pixels) ou une méthode bicubique (les neuf
pixels).

Et lorsque l'on souhaite conserver les paramètres géomètriques de
l'image, il ne faut pas oublier de recalculer la position de l'image
tournée, en partant du principe que le centre des images est invariant
(si le centre de l'image n'est pas le centre de rotation on traduit
cette rotation en la composée d'une rotation de centre, centre image, et
d'une translation).

A+

Christophe




Picalausa François a écrit :
"Jean-marc" de news: 45546e5f$0$1122$

"fredg59"




Merci, j'aurai su le faire.
En fait, l'image dont je parle est au format jpg (ou bmp, etc)



Il y a plein de fonction dans l'API Windows pour
faire cela. On peut aussi utiliser GDI, GDI+, etc.

Je ne suis pas un expert du domaine, mais il y a d'autres
intervenants ici qui connaissent très bien ce domaine.

En attendant qu'ils se manifestent (ohé, Fraçois!!), ce




Hello, (puisqu'on m'a appelé ;-) )

Personellement, j'aurais aussi pioché pour GDI+ : simple à mettre en oeuvre,
efficace, et plus encore (mais à partir de win 98 uniquement... win 95
s'abstenir)!

Sinon, dans les réponses qui ont traditionellement été données:
La KB comporte deux exemples:
http://support.microsoft.com/?kbid€406 (il est ici FORTEMENT conseillé de
remplacer des Point et PSet trop lents pour des GetBitmapBits et
SetBitmapBits, en travaillant offscreen et sans doevents)
http://support.microsoft.com/?kbid6260 (par 90° uniquement, et le BitBlt
pourrait tout aussi certainement être remplacé par les mêmes fonctions de
précédemment)

Si la compatibilité 9x/Me n'est pas importante, on peut aussi utiliser
PlgBlt en calculant le paralellogramme de destination.
Dans ces mêmes conditions, mais encore plus facilement, on peut utiliser les
"XFORM", comme illustré par Mike D. Sutton:
http://edais.mvps.org/ > Files > Demo applications + source code >
Coordinate Spaces and Transformations



Publicité
Poster une réponse
Anonyme