Registriert seit: 8. Mai 2005
Ort: Sondershausen
4.274 Beiträge
Delphi 6 Personal
|
Re: Bitmap32 auf ZielBitmap32 malen
30. Jul 2008, 13:56
BitBlt ignoriert das "Reserwed"-Byte eines Bitmaps welches bei der GR32 als Alphakanal verwenet wird.
Das sind Altlasten der Windowsvorgänger ni nichts mit Transpatenzen zu schaffen haben "wollten".
Delphi-Quellcode:
procedure TForm1.FormPaint(Sender: TObject);
var qb1, qb2, qb3, ziel: TBitmap32;
begin
//Erzeugen und Zeichnen der 3 Quellbitmaps
qb1 := TBitmap32.Create;
try
qb1.Width := 20;
qb1.Height := 40;
qb1.FillRect(0,0,20,40, clRed32);
// Oder
// DrawTo(Dst: TBitmap32; DstX, DstY: Integer; const SrcRect: TRect);
qb2 := TBitmap32.Create;
try
qb2.Width := 20;
qb2.Height := 40;
qb2.FillRect(0,0,20,40, clYellow32);
qb3 := TBitmap32.Create;
try
qb3.Width := 20;
qb3.Height := 40;
qb3.FillRect(0,0,20,40, clBlue32);
//Erzeugen und Zeichnen der Zielbitmap
ziel := TBitmap32.Create;
try
ziel.Width := 60;
ziel.Height := 40;
//linke Quellbitmap
ziel.Draw(0,0 ,qb1);
//mittlere Quellbitmap
ziel.Draw(qb1.Width,0,qb2);
//rechte Quellbitmap
ziel.Draw((qb1.Width + qb2.Width),0,qb3);
ziel.DrawTo(Self.Canvas.Handle, 10, 10);
finally
ziel.Free;
end;
finally
qb3.Free;
end;
finally
qb2.Free;
end;
finally
qb1.Free;
end;
end;
... was klappt da jetzt nicht ?
|
|
Zitat
|