CreateCompatibleBitmap et SetPixelV [Résolu]

ciberrique 591 Messages postés lundi 25 août 2003Date d'inscription 18 juillet 2010 Dernière intervention - 9 nov. 2005 à 20:33 - Dernière réponse : ciberrique 591 Messages postés lundi 25 août 2003Date d'inscription 18 juillet 2010 Dernière intervention
- 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
Afficher la suite 

5 réponses

Renfield 17307 Messages postés mercredi 2 janvier 2002Date d'inscription 18 janvier 2017 Dernière intervention - 10 nov. 2005 à 07:53
+3
Utile
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
Cette réponse vous a-t-elle aidé ?  
cs_DARKSIDIOUS 15838 Messages postés jeudi 8 août 2002Date d'inscription 4 mars 2013 Dernière intervention - 9 nov. 2005 à 21:15
0
Utile
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/
Gobillot 3140 Messages postés vendredi 14 mai 2004Date d'inscription 31 mars 2015 Dernière intervention - 9 nov. 2005 à 21:35
0
Utile
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
ciberrique 591 Messages postés lundi 25 août 2003Date d'inscription 18 juillet 2010 Dernière intervention - 9 nov. 2005 à 21:50
0
Utile
Merci as tout les deux vos réponses me sont fort précieuse.
ciberrique 591 Messages postés lundi 25 août 2003Date d'inscription 18 juillet 2010 Dernière intervention - 10 nov. 2005 à 17:44
0
Utile
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.

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.