zigxag
Messages postés142Date d'inscriptionjeudi 10 février 2005StatutMembreDernière intervention 2 octobre 2008
-
16 août 2005 à 17:39
sebmafate
Messages postés4936Date d'inscriptionlundi 17 février 2003StatutMembreDernière intervention14 février 2014
-
17 août 2005 à 14:15
Bonjour !
j'aimerais pouvoir tourner une image générée en C# de 90 degres. Bien qu'il y ai les fonctions pour faire cela, je n'y arrive pas !! :-s
Voici mon code :
b = new Bitmap(b, new Size(width, height));
graphics = Graphics.FromImage(b);
graphics.Clear(Color.White);
graphics.DrawString(message, f, new SolidBrush(Color.Black), 0, 0);
graphics.Transform.Rotate(90);
graphics.Flush();
...et rien n'y fait, l'image reste désespérément horizontale. Sauriez vous pourquoi ? J'ai également essayé de faire graphics.RotateTransform(90) mais ca ne marche pas non plus :(
SharpMao
Messages postés1024Date d'inscriptionmardi 4 février 2003StatutMembreDernière intervention 7 juin 201069 17 août 2005 à 09:34
Hello,
C'est ton Bitmap qui détermine la position de ton image. Si tu fait une rotation, c'est comme si tu tournait la feuille sur laquelle tu dessine, mais en sachant que lors de l'affichge, le bitmap est remis droit. Il faut donc tourner avant de desiner :
b = new Bitmap(b, new Size(width, height));
graphics = Graphics.FromImage(b);
graphics.Clear(Color.White);
graphics.Transform.Rotate(90);
graphics.DrawString(message, f, new SolidBrush(Color.Black), 0, -20);
Il faut faire atention aux coordonnées :
Avant la transformation Après
......
. .
. .
. .
. .
. .
. .
----------->X........ ----------->X
| . |
| Ta feuille . |
V.................... V
Y Y
C'est pour ça que j'ai mis le -20 en Y, autrement, le message n'apparaît pas.
J'espère que c'est clair, autrement, n'hésite pas.
Amicalement, SharpMao
zigxag
Messages postés142Date d'inscriptionjeudi 10 février 2005StatutMembreDernière intervention 2 octobre 200812 17 août 2005 à 14:05
Et non...ca marche toujours pas :(
b =
new Bitmap(b,
new Size(width, height));
graphics = Graphics.FromImage(b);
graphics.Clear(Color.White);
graphics.DrawString(message, f,
new SolidBrush(Color.Black), 0, 0);
graphics.Transform.Rotate(90);
graphics.Flush();
b =
new Bitmap(b,
new Size(width, height));
graphics = Graphics.FromImage(b);
graphics.Clear(Color.White);
graphics.DrawString(message, f,
new SolidBrush(Color.Black), 0, 0);