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

PictureBox + Rotation

4 réponses
Avatar
AbSoLuT
Bonjour a tous,

Dans mon piccturebox je dessine des ligne de cette facons...

myImage = New Bitmap(Me.PictureBox1.Width, Me.PictureBox1.Height,
Imaging.PixelFormat.Format32bppArgb)
myImageGraphics = Graphics.FromImage(myImage)
myImageGraphics.Clear(Color.DarkBlue)

myImageGraphics.DrawLine(myPen, x1, y1, x2, y2)
myImageGraphics.DrawLine(myPen, x3, y3, x4, y4)
myImageGraphics.DrawLine(myPen, x4, y4, x1, y1)
myImageGraphics.DrawLine(myPen, x3, y3, x2, y2)

myImageGraphics.DrawString(nr, New Font("Arial", 12, FontStyle.Bold),
Brushes.White, New Rectangle(Moyenne, moyenney, 100, 100))
myPen.Dispose()
Me.PictureBox1.Image = myImage

'Je lui fait aussi faire une rotation ...

myImage.RotateFlip(RotateFlipType.RotateNoneFlipY)

Mon probleme c'est que mon texte (myImageGraphics.DrawString) rotationne
aussi, Mais il est ecrit a l'envers :( comment je pourrait lui faire refaire
une autre rotation mais seulement mon texte ???

Merci de votre aide

4 réponses

Avatar
Gilles TOURREAU
Le Mon, 12 Nov 2007 22:28:01 +0100, AbSoLuT
a écrit:

Bonjour a tous,

Dans mon piccturebox je dessine des ligne de cette facons...

myImage = New Bitmap(Me.PictureBox1.Width, Me.PictureBox1.Height,
Imaging.PixelFormat.Format32bppArgb)
myImageGraphics = Graphics.FromImage(myImage)
myImageGraphics.Clear(Color.DarkBlue)

myImageGraphics.DrawLine(myPen, x1, y1, x2, y2)
myImageGraphics.DrawLine(myPen, x3, y3, x4, y4)
myImageGraphics.DrawLine(myPen, x4, y4, x1, y1)
myImageGraphics.DrawLine(myPen, x3, y3, x2, y2)

myImageGraphics.DrawString(nr, New Font("Arial", 12, FontStyle.Bold),
Brushes.White, New Rectangle(Moyenne, moyenney, 100, 100))
myPen.Dispose()
Me.PictureBox1.Image = myImage

'Je lui fait aussi faire une rotation ...

myImage.RotateFlip(RotateFlipType.RotateNoneFlipY)

Mon probleme c'est que mon texte (myImageGraphics.DrawString) rotationne
aussi, Mais il est ecrit a l'envers :( comment je pourrait lui faire
refaire
une autre rotation mais seulement mon texte ???

Merci de votre aide



Image.RotateFlip fait retourner tout l'image...

Graphics.RotateTransform() permet d'effectuer des rotation et de dessiner
sur l'objet myImageGraphics par rapport à cette rotation...

Je peux pas vous en dire plus car je ne vois pas ce que vous voulez
"rotationner" exactement ? Les lignes ? L'image ? Le Texte ?

Cordialement

--
Gilles TOURREAU


S.A.R.L. P.O.S
Le spécialiste en motoculture depuis + de 30 ans !
http://www.pos.fr
Avatar
AbSoLuT
Bonjour Gilles ,

Merci d'avoir prit le temps de me repondre mais, finalement j'ai réussi a
contourner mon probleme et sa fonctionne.

Mais cepandant j'ai un dernier probleme pour que tout soit #1

Voila j'ai un picturebox qui mesure 500 x 500
j'ai aussi une base de donnée contenant plusieur coordonner en x et y du
genre :

x1 = 1405
y1 = 453
x2 = 1405
y2 = 254
x3 = 1411
y3 = 254
x4 = 1411
y4 = 453

comme tu peux le constater mon rectangle n'est pas du tout dans mon
picturebox de 500 x 500

donc ce que j'essaye de faire c'est de replacer le tout avec des nouvelles
coordonées pour qu'il fit dans mon picturebox. Mais je galere depuis un
moment pour essayer de faire fiter sa , mais j'ai quelque probleme.

tu as une iddée comment proceder ?


Merci encord !

"Gilles TOURREAU" wrote:

Le Mon, 12 Nov 2007 22:28:01 +0100, AbSoLuT
a écrit:

> Bonjour a tous,
>
> Dans mon piccturebox je dessine des ligne de cette facons...
>
> myImage = New Bitmap(Me.PictureBox1.Width, Me.PictureBox1.Height,
> Imaging.PixelFormat.Format32bppArgb)
> myImageGraphics = Graphics.FromImage(myImage)
> myImageGraphics.Clear(Color.DarkBlue)
>
> myImageGraphics.DrawLine(myPen, x1, y1, x2, y2)
> myImageGraphics.DrawLine(myPen, x3, y3, x4, y4)
> myImageGraphics.DrawLine(myPen, x4, y4, x1, y1)
> myImageGraphics.DrawLine(myPen, x3, y3, x2, y2)
>
> myImageGraphics.DrawString(nr, New Font("Arial", 12, FontStyle.Bold),
> Brushes.White, New Rectangle(Moyenne, moyenney, 100, 100))
> myPen.Dispose()
> Me.PictureBox1.Image = myImage
>
> 'Je lui fait aussi faire une rotation ...
>
> myImage.RotateFlip(RotateFlipType.RotateNoneFlipY)
>
> Mon probleme c'est que mon texte (myImageGraphics.DrawString) rotationne
> aussi, Mais il est ecrit a l'envers :( comment je pourrait lui faire
> refaire
> une autre rotation mais seulement mon texte ???
>
> Merci de votre aide

Image.RotateFlip fait retourner tout l'image...

Graphics.RotateTransform() permet d'effectuer des rotation et de dessiner
sur l'objet myImageGraphics par rapport à cette rotation...

Je peux pas vous en dire plus car je ne vois pas ce que vous voulez
"rotationner" exactement ? Les lignes ? L'image ? Le Texte ?

Cordialement

--
Gilles TOURREAU


S.A.R.L. P.O.S
Le spécialiste en motoculture depuis + de 30 ans !
http://www.pos.fr



Avatar
Gilles TOURREAU
Le Fri, 16 Nov 2007 20:08:00 +0100, AbSoLuT
a écrit:

Bonjour Gilles ,

Merci d'avoir prit le temps de me repondre mais, finalement j'ai réussi a
contourner mon probleme et sa fonctionne.

Mais cepandant j'ai un dernier probleme pour que tout soit #1

Voila j'ai un picturebox qui mesure 500 x 500
j'ai aussi une base de donnée contenant plusieur coordonner en x et y du
genre :

x1 = 1405
y1 = 453
x2 = 1405
y2 = 254
x3 = 1411
y3 = 254
x4 = 1411
y4 = 453

comme tu peux le constater mon rectangle n'est pas du tout dans mon
picturebox de 500 x 500

donc ce que j'essaye de faire c'est de replacer le tout avec des
nouvelles
coordonées pour qu'il fit dans mon picturebox. Mais je galere depuis un
moment pour essayer de faire fiter sa , mais j'ai quelque probleme.

tu as une iddée comment proceder ?




Il faut trouver le ratio d'échelle (vertical et horizontal) entre tes
données et ton picture box...

Après tu as le choix entre 2 méthodes :
- Soit tu calcules chaques points à placer dans ton picture box en
utilisant ces 2 ratios...
- Soit tu appelles e.Graphics.ScaleTransform(ratioHorizontale,
ratioVertial) avant et tu dessines directement avec tes valeurs de la BD...

Mais pour calculer le ratio, il te faut la taille de ta picture box au
niveau BD.

Cordialement

--
Gilles TOURREAU


S.A.R.L. P.O.S
Le spécialiste en motoculture depuis + de 30 ans !
http://www.pos.fr
Avatar
AbSoLuT
Re Bonjour Gilles,

Merci pour ton aide j'ai finalement reussi a faire quelque chose de bons :)

Merci !!

"Gilles TOURREAU" wrote:

Le Fri, 16 Nov 2007 20:08:00 +0100, AbSoLuT
a écrit:

> Bonjour Gilles ,
>
> Merci d'avoir prit le temps de me repondre mais, finalement j'ai réussi a
> contourner mon probleme et sa fonctionne.
>
> Mais cepandant j'ai un dernier probleme pour que tout soit #1
>
> Voila j'ai un picturebox qui mesure 500 x 500
> j'ai aussi une base de donnée contenant plusieur coordonner en x et y du
> genre :
>
> x1 = 1405
> y1 = 453
> x2 = 1405
> y2 = 254
> x3 = 1411
> y3 = 254
> x4 = 1411
> y4 = 453
>
> comme tu peux le constater mon rectangle n'est pas du tout dans mon
> picturebox de 500 x 500
>
> donc ce que j'essaye de faire c'est de replacer le tout avec des
> nouvelles
> coordonées pour qu'il fit dans mon picturebox. Mais je galere depuis un
> moment pour essayer de faire fiter sa , mais j'ai quelque probleme.
>
> tu as une iddée comment proceder ?
>

Il faut trouver le ratio d'échelle (vertical et horizontal) entre tes
données et ton picture box...

Après tu as le choix entre 2 méthodes :
- Soit tu calcules chaques points à placer dans ton picture box en
utilisant ces 2 ratios...
- Soit tu appelles e.Graphics.ScaleTransform(ratioHorizontale,
ratioVertial) avant et tu dessines directement avec tes valeurs de la BD...

Mais pour calculer le ratio, il te faut la taille de ta picture box au
niveau BD.

Cordialement

--
Gilles TOURREAU


S.A.R.L. P.O.S
Le spécialiste en motoculture depuis + de 30 ans !
http://www.pos.fr