tu peux utiliser l'API bitblt, qu'on declare comme ça:
Private Declare Function BitBlt Lib "gdi32" (ByVal hDestDC As Long, ByVal X As Long, ByVal Y As Long, ByVal nWidth As Long, ByVal nHeight As Long, ByVal hSrcDC As Long, ByVal xSrc As Long, ByVal ySrc As Long, ByVal dwRop As Long) As Long
'Constantes Graphiques Const SRCAND = &H8800C6 Const SRCCOPY = &HCC0020 'inutile ici mais ca peut servir Const SRCPAINT = &HEE0086 Const SRCINVERT = &H660046 'idem
ensuite tu as besoin de 2 images, de meme dimension: le masque et l'image proprement dite on va par exemple les appeler Image et Masque Masque est en noir est blanc, les pixels blancs étant ceux à rendre transparents
pour afficher ton image avec son masque dans un bloc Picture1 aux coordonnées x et y (0,0 si tu veux l'afficher en haut à gauche), voila le code:
BitBlt Picture1.hDC, x, y, Masque.Width, Masque.Height, Masque.hDC, 0, 0, SRCAND BitBlt Picture1.hDC, x, y, Image.Width, Image.Height, Image.hDc.hDC, 0, 0, SRCPAINT Picture1.Refresh
voila j'espere que ca répond à ta question
|