Přidat otázku mezi oblíbenéZasílat nové odpovědi e-mailem 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;
Předmět Autor Datum
Tak uz jsem to vyresil, jednoduche jak facka :i: a ja to delam pres object 3-[ if not Assigned(bmp3… poslední
virus 21.12.2009 19:15
virus

Tak uz jsem to vyresil, jednoduche jak facka :i: a ja to delam pres object 3-[

if not Assigned(bmp3) then
  bmp3:=TBitmap.Create;
bmp3.Assign(bmp1);
duch.BlendOp:=AC_SRC_OVER;
duch.BlendFlags:=0;
duch.SourceConstantAlpha:=Alpha;
duch.AlphaFormat:=0;

AlphaBlend(bmp3.Canvas.Handle,0,0,bmp3.Width,bmp3.Height,
   bmp2.canvas.handle,0,0,bmp2.Width,bmp2.Height,duch);

Zpět do poradny Odpovědět na původní otázku Nahoru