Api Windows

Posté par Anonyme le 22/10/2003 14:25:28
Je cherche un exemple de code avec les API "AlphaBlend" et "GetDIBits"
je n'arrive pas a les faire fonctionner correctement .

----------------------------------------------------------
BLENDFUNCTION est une structure
	BlendOp est un caractère
	BlendFlags est un caractère 
	SourceConstantAlpha est un caractère
	AlphaFormat est un caractère
FIN

BF est un BLENDFUNCTION
LBF est un entier 

hdcSrc est un entier = AppelDLL32("user32", "GetDC", Handle("Image1"))
hdc est un entier = AppelDLL32("user32", "GetDC", Handle("Image2"))
BF:BlendOp = 0
BF:BlendFlags = 0
BF:AlphaFormat = 0
BF:SourceConstantAlpha = 128
res = API("kernel32","RtlMoveMemory",&LBF,&BF,4)
res = API("MSIMG32","AlphaBlend", hdc,0,0,100,100, hdcSrc,0,0,100,100,&LBF)


-------------------------------------------------------
BITMAPINFOHEADER est une structure
	biSize est un entier //Type C : DWORD
	biWidth est un entier //Type C : LONG
	biHeight est un entier //Type C : LONG
	biPlanes est un entier sur 2 octets //Type C : WORD
	biBitCount est un entier sur 2 octets //Type C : WORD
	biCompression est un entier //Type C : DWORD
	biSizeImage est un entier //Type C : DWORD
	biXPelsPerMeter est un entier //Type C : LONG
	biYPelsPerMeter est un entier //Type C : LONG
	biClrUsed est un entier //Type C : DWORD
	biClrImportant est un entier //Type C : DWORD
FIN
RGBQUAD est une structure
	rgbBlue est un caractère //Type C : BYTE
	rgbGreen est un caractère //Type C : BYTE
	rgbRed est un caractère //Type C : BYTE
	rgbReserved est un caractère //Type C : BYTE
FIN
BITMAPINFO est une structure
	bmiHeader est un BITMAPINFOHEADER //BITMAPINFOHEADER est une autre structure
	bmiColors est un RGBQUAD //RGBQUAD est une autre structure
FIN

RGBQ1 est un tableau dynamique de 100*120 RGBQUAD
BMPINFO est un BITMAPINFO
BMPINFOH est un BITMAPINFOHEADER
 
BMPINFOH:biBitCount = 32
BMPINFOH:biHeight = 100
BMPINFOH:biWidth = 120
BMPINFOH:biPlanes = 1
BMPINFOH:biSize = Dimension(BMPINFOH)
BMPINFO:bmiHeader = BMPINFOH

RetourFonction est un entier // Type C :INT

hImage1 est un entier = Handle("image1")
hdc est un entier = AppelDLL32("user32", "GetDC", hImage1)

RetourFonction=API("GDI32","GetDIBits",hdc,hImage1,0,100,&RGBQ1,&BMPINFO,0)

Cette contribution était de : http://old.wdforge.org/newbb/viewtopic.php?forum=5&topic_id=330&post_id=1192