
Problem s GetObject(smejd, SizeOf(bubu), @bubu);
Mam jeden problem udelal jsem alphablend pro zpracovani obrazku, funguje na desktop ale ne s bitmapou, kde delam chybu?? Nekde byt musi ale kde ?
procedure Timg.button1Click(Sender: TObject; svatej:byte);
var
duch: BLENDFUNCTION;
sakra: THandle;
smejd : hbitmap;
bubu: TBitmap;
vysol_obrazek: HDC;
begin
if opendialog1.Execute then
begin
vysol_obrazek := CreateCompatibleDC(0);
smejd := LoadImage(0,PChar(opendialog1.FileName),IMAGE_BITMAP,0,0,LR_LOADFROMFILE);
GetObject(smejd, SizeOf(bubu), @bubu);
SelectObject(vysol_obrazek, smejd);
end;
try
duch.BlendOp := AC_SRC_OVER;
duch.BlendFlags := 0;
duch.SourceConstantAlpha := svatej;
duch.AlphaFormat := 1;
Image1.Canvas.Brush.Color := clred;
Image1.Canvas.FillRect(Rect(0, 0, 640, 480));
Windows.AlphaBlend(Image1.Canvas.Handle, 0, 0, Image1.Width, Image1.Height, vysol_obrazek, 0, 0, Image1.Width, mage1.Height, duch);
finally
ReleaseDC(smejd, vysol_obrazek);
end;
end;