Hallo miteinander,
irgendwie ist nach dem Jahreswechsel der Denkapparat noch nicht ganz auf Hochtouren.
Es geht um folgende selbstgeschriebende Prozedur:
Delphi-Quellcode:
procedure TransparentStretch(const Source, Destination : TBitmap);
var
TmpBmp : TBitmap;
begin
TmpBmp := TBitmap.Create;
try
TmpBmp.Width := Destination.Width;
TmpBmp.Height := Destination.Height;
SetStretchBltMode(TmpBmp.Canvas.Handle, HALFTONE);
if TransparentStretchBlt(
TmpBmp.Canvas.Handle, 0, 0, TmpBmp.Width, TmpBmp.Height,
Source.Canvas.Handle, 0, 0, Source.Width, Source.Height,
Source.Canvas.Handle, 0, 0) then
begin
Destination.Assign(TmpBmp);
end;
finally
TmpBmp.Free;
end;
end;
Destination ist in meinen Beispiel einfach ein rotes Bitmap und Source ein sehr viel kleineres schachbrettartiges Muster in Schwarz/Weiss.
Nun hätte ich gern, das am Ende ein roter Hintergrund mit schwarzen Kästchen rauskommt.
Leider sorgt das Aufrufen der Funktion nur für ein Umschalten und stretchen des Schachbrett-Musters, also als hätte man StretchBlt angewendet.
Ideen, Vorschläge, (Teil-)Lösungen?