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