CreateCompatibleBitmap et SetPixelV [Résolu]

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

5 réponses

Meilleure réponse
Renfield
Messages postés
17308
Date d'inscription
mercredi 2 janvier 2002
Dernière intervention
22 août 2018
- 10 nov. 2005 à 07:53
3
Merci
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

Merci Renfield 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 94 internautes ce mois-ci

cs_DARKSIDIOUS
Messages postés
15838
Date d'inscription
jeudi 8 août 2002
Dernière intervention
4 mars 2013
- 9 nov. 2005 à 21:15
0
Merci
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
Messages postés
3140
Date d'inscription
vendredi 14 mai 2004
Dernière intervention
31 mars 2015
- 9 nov. 2005 à 21:35
0
Merci
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
Messages postés
591
Date d'inscription
lundi 25 août 2003
Dernière intervention
18 juillet 2010
- 9 nov. 2005 à 21:50
0
Merci
Merci as tout les deux vos réponses me sont fort précieuse.
ciberrique
Messages postés
591
Date d'inscription
lundi 25 août 2003
Dernière intervention
18 juillet 2010
- 10 nov. 2005 à 17:44
0
Merci
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.