CreateCompatibleBitmap et SetPixelV

Résolu
ciberrique Messages postés 589 Date d'inscription lundi 25 août 2003 Statut Membre Dernière intervention 18 juillet 2010 - 9 nov. 2005 à 20:33
ciberrique Messages postés 589 Date d'inscription lundi 25 août 2003 Statut Membre Dernière intervention 18 juillet 2010 - 10 nov. 2005 à 17:44
Bonjours, je voudrais dessiner sur une surface en mémoire mais je n'y arrive pas, j'ai rédigé le code suivant mais a = 0 alors que normalement non.

Dim TDc As Long, l As Long
Dim TBitmap As Long

l = UBound(File)

TDc = CreateCompatibleDC(Me.hdc)
TBitmap = CreateCompatibleBitmap(TDc, l, 256)
For i = 1 To l
a = SetPixelV(TBitmap, i, File(i - 1), vbBlack)
Next i

Merci

5 réponses

Renfield Messages postés 17287 Date d'inscription mercredi 2 janvier 2002 Statut Modérateur Dernière intervention 27 septembre 2021 74
10 nov. 2005 à 07:53
Pour coller à ton code, ca donnerais :

Dim TDc As Long, l As Long
Dim TBitmap As Long

l = UBound(File)

TDc = CreateCompatibleDC(Me.hdc)
'# Bitmap monochrome :
'TBitmap = CreateCompatibleBitmap(TDc, l, 256)
'# Bitmap en couleur :
TBitmap = CreateCompatibleBitmap(Me.hdc, l, 256)

SelectObject tDC , TBitmap
For i = 1 To l
a = SetPixelV(TDc, i, File(i - 1), vbBlack)
Next i

maintenant, l'algo n'est pas top : tu souhaite juste tracer une ligne, pas besoin de manipuler les pixels pour cela !
(MoveToEx / LineTo)

DeleteDC tdc
DeleteObject tbitmap

Amusez-vous !
Renfield - thomas_reynald@msn.com
Admin CodeS-SourceS - MVP Visual Basic
3
cs_DARKSIDIOUS Messages postés 15814 Date d'inscription jeudi 8 août 2002 Statut Membre Dernière intervention 4 mars 2013 130
9 nov. 2005 à 21:15
Attention, un handle de bitmap n'est pas un handle de DC !



Un bitmap est sélectionné dans un DC, mais c'est sur le DC qu'il faut travailler !



Voir ma source de gestion d'image pour un exemple concret d'utilisation d'un tableau de bits.

_____________________________________________________________________
DarK Sidious

Un API Viewer (pour le VB, VB.NET, C, C# et Delphi) tout en français : www.ProgOtoP.com/popapi/
0
Gobillot Messages postés 3140 Date d'inscription vendredi 14 mai 2004 Statut Membre Dernière intervention 11 mars 2019 34
9 nov. 2005 à 21:35
en gdiplus ça existe

utilisable en VB6 mais pas simple à mettre au point.









Public Declare Function GdipCreateFromHDC Lib "gdiplus" (ByVal hdc As Long, graphics As Long) As GpStatus

Public Declare Function GdipCreateBitmapFromGraphics Lib "gdiplus"
(ByVal Width As Long, ByVal Height As Long, ByVal graphics As Long,
bitmap As Long) As GpStatus

Public Declare Function GdipBitmapSetPixel Lib "gdiplus" (ByVal bitmap
As Long, ByVal x As Long, ByVal y As Long, ByVal Color As Long) As
GpStatus

etc ....

Daniel
0
ciberrique Messages postés 589 Date d'inscription lundi 25 août 2003 Statut Membre Dernière intervention 18 juillet 2010 1
9 nov. 2005 à 21:50
Merci as tout les deux vos réponses me sont fort précieuse.
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
ciberrique Messages postés 589 Date d'inscription lundi 25 août 2003 Statut Membre Dernière intervention 18 juillet 2010 1
10 nov. 2005 à 17:44
Merci c'est exactement le code que je chercher, seulement j'avais oublier de select.
D'ailleur il me semble que c'est toi qui m'avais expliquer la méthode il y plusieurs moi sur msn. Merci encore.
0
Rejoignez-nous