CreateCompatibleBitmap et SetPixelV [Résolu]

Signaler
Messages postés
589
Date d'inscription
lundi 25 août 2003
Statut
Membre
Dernière intervention
18 juillet 2010
-
Messages postés
589
Date d'inscription
lundi 25 août 2003
Statut
Membre
Dernière intervention
18 juillet 2010
-
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
A voir également:

5 réponses

Messages postés
17286
Date d'inscription
mercredi 2 janvier 2002
Statut
Modérateur
Dernière intervention
23 décembre 2019
61
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
Merci

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 259 internautes nous ont dit merci ce mois-ci

Messages postés
15815
Date d'inscription
jeudi 8 août 2002
Statut
Modérateur
Dernière intervention
4 mars 2013
94
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/
Messages postés
3140
Date d'inscription
vendredi 14 mai 2004
Statut
Membre
Dernière intervention
11 mars 2019
23
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
Messages postés
589
Date d'inscription
lundi 25 août 2003
Statut
Membre
Dernière intervention
18 juillet 2010

Merci as tout les deux vos réponses me sont fort précieuse.
Messages postés
589
Date d'inscription
lundi 25 août 2003
Statut
Membre
Dernière intervention
18 juillet 2010

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.