ROTATION D'UNE IMAGE EN SON CENTRE

scortex84 Messages postés 379 Date d'inscription mardi 19 mars 2002 Statut Membre Dernière intervention 20 avril 2011 - 18 août 2005 à 18:50
guilleto Messages postés 256 Date d'inscription jeudi 23 octobre 2003 Statut Membre Dernière intervention 20 mars 2013 - 6 déc. 2010 à 09:22
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.

https://codes-sources.commentcamarche.net/source/33250-rotation-d-une-image-en-son-centre

guilleto Messages postés 256 Date d'inscription jeudi 23 octobre 2003 Statut Membre Dernière intervention 20 mars 2013 1
6 déc. 2010 à 09:22
Bonjour à toutes et tous,

Je voudrais savoir si sur un PictureBox utilisant déjà le système de G en tant que Graphics il est possible d'ajouter du texte incliné à N ° ?

Si oui, Comment fait-on cela ?

Par avance merci

Olivier
VincGold Messages postés 2 Date d'inscription dimanche 8 octobre 2006 Statut Membre Dernière intervention 28 septembre 2010
28 sept. 2010 à 07:35
Le code fonctionne bien seulement quand l'image est en mode "Normal", savez vous comment faire si l'image est en mode "Zoom"...?...
Car lors de la rotation elle redeviens en mode "Original"...

En tout cas merci pour ce code qui m'est d'une très grande utilitée...
jambonlol2 Messages postés 2 Date d'inscription lundi 14 juin 2010 Statut Membre Dernière intervention 16 juin 2010
16 juin 2010 à 12:14
De plus j'ai mis un timer pour la faire tourner plusieurs fois et l'image ne tourne qu'une fois
jambonlol2 Messages postés 2 Date d'inscription lundi 14 juin 2010 Statut Membre Dernière intervention 16 juin 2010
16 juin 2010 à 12:13
Pour moi cela ne marche pas même avec le code corrigé, je cherche a tourner une image de 45° (des formes gémotriques) et cela me rogne l'image et la tourne de 180°...
fred888897 Messages postés 2 Date d'inscription jeudi 28 septembre 2006 Statut Membre Dernière intervention 7 avril 2010
7 avril 2010 à 21:39
Très utile et malin, merci pour l'info.
cs_ricounet Messages postés 51 Date d'inscription lundi 30 décembre 2002 Statut Membre Dernière intervention 26 mars 2009
26 mars 2009 à 11:29
ça fait 4000 ans que j'ai fais ce truc...
Alors si ça marche, c'est l'essentiel !!!!!!!!!!
cs_Kite37 Messages postés 242 Date d'inscription lundi 6 mars 2006 Statut Membre Dernière intervention 17 janvier 2018
25 mars 2009 à 10:49
Bonjour.

Ce morceau de code m'est très utile, mais j'ai beau essayer j'ai du mal a comprendre comment vous êtes arrivé a cette formule mathématique (notamment le sqrt(2) qui semble sortir de nul part)

Pourriez vous me l'expliquer le plus en détail possible? car je n'aime pas utiliser quelques chose que je ne comprend pas ^^

Cordialement,

KiTe
cs_ricounet Messages postés 51 Date d'inscription lundi 30 décembre 2002 Statut Membre Dernière intervention 26 mars 2009
1 déc. 2008 à 17:56
Monsieur gillardg, je suis d'accord !
cs_ricounet Messages postés 51 Date d'inscription lundi 30 décembre 2002 Statut Membre Dernière intervention 26 mars 2009
1 déc. 2008 à 17:56
ben... j'ai fait de la géométrie !!!
cs_clowzer Messages postés 50 Date d'inscription dimanche 4 mai 2008 Statut Membre Dernière intervention 4 juillet 2013
30 nov. 2008 à 13:31
stp explique coment tu as devloppé les fonction deometrique pour prouver "posx"et"posy"
coment tu la fait?
cs_clowzer Messages postés 50 Date d'inscription dimanche 4 mai 2008 Statut Membre Dernière intervention 4 juillet 2013
29 nov. 2008 à 01:04
ces coooooooooooooool vraiiiiment ton prog
gillardg Messages postés 3275 Date d'inscription jeudi 3 avril 2008 Statut Membre Dernière intervention 14 septembre 2014 2
13 nov. 2008 à 12:53
je te propose de déposer ce code sur codyx si ce n'est déjà fait , voici la version corrigée telle que je la vois
Sub Rotation(ByVal AngleDegre As Integer, ByVal picBox As PictureBox)

Dim G As Graphics

'on mémorise la longueur de l'image
'je pars de l'hypothèse que j'utilise une image carré
Dim Cote As Integer = picBox.Image.Width

'on mémorise l'image présente dans la picture box
Dim IMG As Image = picBox.Image

'définition de la picturebox comme espace de dessin
G = picBox.CreateGraphics()

'on efface
G.Clear(Me.BackColor)

'on transforme l'angle en radians
Dim Angle As Double = AngleDegre / 180 * Math.PI

'on calcule les nouvelles coord X et Y de l'image
Dim PosX As Single = Math.Sqrt(2) * (Cote) * Math.Sin(Angle / 2) * Math.Cos(Math.PI / 4 + Angle / 2)
Dim PosY As Single = -Math.Sqrt(2) * (Cote) * Math.Sin(Angle / 2) * Math.Cos(Math.PI / 4 - Angle / 2)

'on fait la rotation
G.RotateTransform(AngleDegre)

'on dessine l'image rotée aux nouvelles coordonnées
G.DrawImage(IMG, PosX, PosY, Cote, Cote)

'on libère !
G.Dispose()

End Sub
gillardg Messages postés 3275 Date d'inscription jeudi 3 avril 2008 Statut Membre Dernière intervention 14 septembre 2014 2
13 nov. 2008 à 12:49
merci pour ce code ,
juste une remarque :
Function Rotation(ByVal AngleDegre As Integer)

pourquoi une function puisque aucune valeur n'est renvoyée , il fallait donc utiliser un Sub !
8/10 pour la fonctionalité ( sais même pas si c'est dans le dico mais tant pis )
winny68 Messages postés 99 Date d'inscription vendredi 25 avril 2003 Statut Membre Dernière intervention 14 février 2011 1
4 oct. 2007 à 15:01
-> GOOTSU

Cela sert à libérer la ressource employée par la variable 'Graphics'. Et donc libérer de la mémoire si je ne me trompe pas.
gootsu Messages postés 10 Date d'inscription jeudi 28 avril 2005 Statut Membre Dernière intervention 22 décembre 2010
10 juil. 2007 à 12:26
Ma question devrait etre simple! ;)

# 'on libère !
# G.Dispose()

cela sert à quoi de libérer?
renator67 Messages postés 9 Date d'inscription lundi 18 avril 2005 Statut Membre Dernière intervention 9 janvier 2013
6 juil. 2007 à 18:43
Salut,

cette source est trés intéressante et correspondant a ce que je recherche, j'ai juste un petit soucis :

lorsque j'utilise ta source avec mon propre bmp, celui ci se retrouve déformer lors de la rotation !
As tu une idée de ce qui provoque cela ?

en tous cas, bravo.
cs_et1 Messages postés 250 Date d'inscription vendredi 14 janvier 2005 Statut Membre Dernière intervention 27 janvier 2011 10
12 sept. 2006 à 19:04
Non, PB.Image.save enregistree juste l'image, mais pas les graphiques.
Mais mon problème est réglé, j'ai trouvé la solution. Merci quand même.


www.et1-vb.net
Pleins de logiciels et codes-sources vb.net !
cs_rt15 Messages postés 3874 Date d'inscription mardi 8 mars 2005 Statut Modérateur Dernière intervention 7 novembre 2014 13
12 sept. 2006 à 19:01
Je connais pas le dotnet, mais bon, commme je passe par là, c'est l'occasion...

C'est peut être bien du MaPictureBox.Image.Save(...)

..., ça peut être pas mal de truc sympa apparement, mais une chaîne du nom du fichier suffit.

Tout est dans la msdn ! En français en plus.
http://msdn.microsoft.com/library/fre/default.asp
cs_et1 Messages postés 250 Date d'inscription vendredi 14 janvier 2005 Statut Membre Dernière intervention 27 janvier 2011 10
1 sept. 2006 à 13:42
Bonjour,
Est-ce possible de pouvoir enregistrer l'image (ayant subit la rotation) ?
Merci.
winny68 Messages postés 99 Date d'inscription vendredi 25 avril 2003 Statut Membre Dernière intervention 14 février 2011 1
12 août 2006 à 18:56
Bonjour,
Je tiens à te faire remarquer ricounet qu'il y a une faut dans ton code. Elle est toute petite et m'a fait perdre beaucoup de temps. Elle se trouve à la ligne 24. Il faut remplacer la valeur "Largeur" par "Hauteur" sinon l'image fait une rotation mais elle est rognée. D'ou le problème de Xav88.

Merci toute de même pour ce code très utile.
cs_ln23 Messages postés 1 Date d'inscription jeudi 8 juin 2006 Statut Membre Dernière intervention 15 juin 2006
15 juin 2006 à 17:31
Bonjour,
Quelqu'un connaitrait-il un code similaire à celui-ci permettant la rotation d'image carrée sous vb6 ?
Merci d'avance!!!
LN...hyper débutante en fait...
Xav88 Messages postés 178 Date d'inscription mercredi 8 octobre 2003 Statut Membre Dernière intervention 25 septembre 2008
22 mars 2006 à 12:31
Bonjour,
Ton code est bien pratique...Mais quand je fait tourner une image carrée elle se retrouve rognée sur les angles. Quelqu'un a-t-il une solution à ce problème ?

Merci davance
Xav
cs_guyvdv Messages postés 101 Date d'inscription samedi 16 mars 2002 Statut Membre Dernière intervention 19 mai 2011 1
8 févr. 2006 à 10:14
bonjour,
J cherche ou trouver le fichier de l image met j n ai pas trouve
Biensur je peut metre mon image a tourner, la oui je retrouve la trace dans la property du picturebox??
qui m aide.

Guy van der Velden
cs_ricounet Messages postés 51 Date d'inscription lundi 30 décembre 2002 Statut Membre Dernière intervention 26 mars 2009
13 oct. 2005 à 15:59
Cher olixelle, c'est vrai que le code est moche, MAIS le but, c'était la formule de rotation et rien d'autre !
olixelle Messages postés 506 Date d'inscription vendredi 30 juillet 2004 Statut Membre Dernière intervention 3 mars 2008 2
11 oct. 2005 à 14:34
c pas tres bien codé qd mm.... mais ca ma bien aidé, merci :)
cs_ricounet Messages postés 51 Date d'inscription lundi 30 décembre 2002 Statut Membre Dernière intervention 26 mars 2009
25 août 2005 à 19:18
Tout à fait d'accord !!!
cs_cbu Messages postés 394 Date d'inscription mercredi 30 janvier 2002 Statut Membre Dernière intervention 4 novembre 2009 1
25 août 2005 à 16:10
# 'on efface
# G.Clear(Me.BackColor)

pourquoi pas mettre
G.Clear(PictureBox1.BackColor) ?
car si on met ce petit code sympatoche dans un module le Me n'est pas autorisé ..
scortex84 Messages postés 379 Date d'inscription mardi 19 mars 2002 Statut Membre Dernière intervention 20 avril 2011 1
18 août 2005 à 18:50
Code simple et c'est les meilleurs !

Vraiment bien ! Bravo !

Seb.
Rejoignez-nous