Articles > Assembleur > Graphismes > Draw > Comment tracer un point ? >Comment tracer un point ?Composition d'une imageChaque image est composée de lignes et de colonnes. Dans la mémoire, une image est constituée d'une série de lignes. Chaque pixel est codé sur 4 octets selon le format ARGB :
Addresse d'un pixelL'addresse d'un pixel est donnée par la formule suivante :
avec 0 <= x < dwWidth ; 0 <= y < dwHeight Dessiner un pixelprototype de la fonctiondrawPixel PROTO near C, ddsd:DWORD, x:DWORD, y:DWORD, color:DWORD descriptionPour dessiner un pixel sur une image, on vérifie d'abord q'un descripteur d'image a été fourni. Si tous les paramètres sont OK, on dessine le pixel sur l'image de la manière suivante : on calcule d'abord l'addresse du pixel à l'aide ce la formule précédente puis on écrit la couleur du pixel à cette addresse. code de la fonctiondrawPixel PROC near C, ddsd:DWORD, x:DWORD, y:DWORD, color:DWORD pushad ; if(!ddsd) return mov esi,ddsd and esi,esi jz fin ; if(y<0) return mov eax,y and eax,eax js fin ; if(y>=height) return mov ecx,(drawDesc ptr [esi]).dwHeight cmp eax,ecx jge fin ; if(x<0) return mov ebx,x and ebx,ebx js fin ; if(x>=width) return mov edx,(drawDesc ptr [esi]).dwWidth cmp ebx,edx jge fin ; ---PutPixel--- mov edi,(drawDesc ptr [esi]).lpSurface mul edx add eax,ebx shl eax,2 add edi,eax mov eax,color mov dword ptr [edi],eax fin: popad ret drawPixel ENDP
Articles > Assembleur > Graphismes > Draw > Comment tracer un point ? >Cette page a été générée le 12 mai 2008 06:36:16. |
outilsqui est en ligne ?7 visiteurs en ligne
sondage qualité |