OVH Cloud OVH Cloud

Graphiques

2 réponses
Avatar
Emmanuel DURAND
Bonjour,
Je cherche à afficher des images dans une form.
Les images sont générées par un processus plutôt long et je ne peux pas (ne
veux pas) relancer la génération à chaque Paint de ma form.
Il faut donc que je stocke ces images, en object Bitmap, par exemple. Je les
génère bien puisque je peux faire un .Save et visualiser le .BMP.
Le problème, c'est que je n'arrive pas à les afficher dans ma form. Je
voudrais utiliser les API (BitBlt et compagnie), donc passer par un GetHDC.
Qui peut m'aider dans ce fouilli de Graphics?


Private Sub pic_Paint(ByVal sender As Object, ByVal e As
System.Windows.Forms.PaintEventArgs) Handles pic.Paint
Dim lBitMap As Bitmap
Dim lGraphics As Graphics
Dim lHdcDest As IntPtr
Dim lHdcSrc As IntPtr
e.Graphics.Clear(Drawing.Color.Black)
lHdcDest = e.Graphics.GetHdc
For Each lBitMap In mColGraphics
lGraphics = e.Graphics.FromImage(lBitMap)
lHdcSrc = lGraphics.GetHdc
'Pour le test, j'écrase le précédent, ce n'est pas le pblm pour
l'instant
BitBlt(lHdcDest, 0, 0, pic.ClientRectangle.Width,
pic.ClientRectangle.Height, lHdcSrc, 0, 0, SRCCOPY)
lGraphics.ReleaseHdc(lHdcSrc)
lGraphics.Dispose()
Next
e.Graphics.ReleaseHdc(lHdcDest)
End Sub

2 réponses

Avatar
PierreSlideM
J'utilise ça qui marche bien :

dim newBitmap As New Bitma(me.Width,me.Height,PixelFormat.Format32bppArgb)
Dim Graph As Graphics = Graphics.FromImage(newBitmap)
--->>ICI,Dessiner dans Graph
me.BackgroundImage=newBitmap.Clone
newBitmap.Dispose


"Emmanuel DURAND @wanadoo.fr>" a écrit :

Bonjour,
Je cherche à afficher des images dans une form.
Les images sont générées par un processus plutôt long et je ne peux pas (ne
veux pas) relancer la génération à chaque Paint de ma form.
Il faut donc que je stocke ces images, en object Bitmap, par exemple. Je les
génère bien puisque je peux faire un .Save et visualiser le .BMP.
Le problème, c'est que je n'arrive pas à les afficher dans ma form. Je
voudrais utiliser les API (BitBlt et compagnie), donc passer par un GetHDC.
Qui peut m'aider dans ce fouilli de Graphics?


Private Sub pic_Paint(ByVal sender As Object, ByVal e As
System.Windows.Forms.PaintEventArgs) Handles pic.Paint
Dim lBitMap As Bitmap
Dim lGraphics As Graphics
Dim lHdcDest As IntPtr
Dim lHdcSrc As IntPtr
e.Graphics.Clear(Drawing.Color.Black)
lHdcDest = e.Graphics.GetHdc
For Each lBitMap In mColGraphics
lGraphics = e.Graphics.FromImage(lBitMap)
lHdcSrc = lGraphics.GetHdc
'Pour le test, j'écrase le précédent, ce n'est pas le pblm pour
l'instant
BitBlt(lHdcDest, 0, 0, pic.ClientRectangle.Width,
pic.ClientRectangle.Height, lHdcSrc, 0, 0, SRCCOPY)
lGraphics.ReleaseHdc(lHdcSrc)
lGraphics.Dispose()
Next
e.Graphics.ReleaseHdc(lHdcDest)
End Sub





Avatar
Emmanuel DURAND
Merci,
Mais je cherche à utiliser BitBlt pour d'autres traitements...