Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Rotation d'une image

6 réponses
Avatar
fredg59
Existe-t-il un moyen d'effectuer une rotation sur une image sans avoir
=E0 charger les diff=E9rents =E9tats de ces images ?

6 réponses

Avatar
LE TROLL
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" a écrit dans le message de news:

Existe-t-il un moyen d'effectuer une rotation sur une image sans avoir
à charger les différents états de ces images ?
Avatar
fredg59
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" a écrit dans le message de news:

Existe-t-il un moyen d'effectuer une rotation sur une image sans avoir
à charger les différents états de ces images ?


Avatar
Jean-marc
>"fredg59" a écrit dans le message de news:
>
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/
Avatar
Picalausa François
"Jean-marc" a écrit dans le message
de news: 45546e5f$0$1122$
>"fredg59" a écrit dans le message de news:
>
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
Avatar
Jean-marc
"Picalausa François" a écrit dans le message de news:

"Jean-marc" a écrit dans le
message de news: 45546e5f$0$1122$
>"fredg59" a écrit dans le message de news:
>
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
Avatar
touriste
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" a écrit dans le message
de news: 45546e5f$0$1122$

"fredg59" a écrit dans le message de news:





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