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
3
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
3
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
10
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
9
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
14
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
9
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.