pour ceux que ca interesse, voici une petite solution :
soit DD l objet DirectDraw7
Public Function getSurfaceFromStream(ByVal stream As Stream) As DirectDrawSurface7
Dim b As Image = New Bitmap(stream)
'Obtenir la surface
Dim desc As DDSURFACEDESC2
desc.lFlags = DDSD_CAPS Or DDSD_HEIGHT Or DDSD_WIDTH
desc.lWidth = b.Width
desc.lHeight = b.Height
desc.ddsCaps.lCaps = DDSCAPS_OFFSCREENPLAIN
Dim surface As DirectDrawSurface7 = DD.CreateSurface(desc)
'création d'un Graphics a partir du HDC de la surface
Dim hdc As Integer = surface.GetDC()
Dim dest As Graphics = Graphics.FromHdc(New IntPtr(hdc))
'copie de l'image
dest.DrawImage(b, 0, 0, b.Width, b.Height)
'libération de la mémoire
dest.Dispose()
'release du HDC
surface.ReleaseDC(hdc)
Dim key As DDCOLORKEY
key.low = RGB(255, 0, 255)
key.high = RGB(255, 0, 255)
surface.SetColorKey(DDCKEY_SRCBLT, key)
Return surface
End Function
C'ets une solution rapide de prototypage alors ne hurlez pas sur la facon de coder ...
Par contre si qqun a mieux je suis toujours preneur.
au fait, si qqun peut me dire pourquoi l aide de Visual Studio 2002 indique les fonctions FromHdc, etc ... pour la classe Graphics alors que la complétion de mot sous l editeur ne les affiche pas ?
MRDOGBERT