Soweit ich das verstanden habe will er ein bild über das andere legen ohne dabei die farben zu mischen.
Ich habe eben mal schnell eine function geschrieben:
Delphi-Quellcode:
Function MergeBitmaps(Src1, Src2, Dest: TBitmap; MaskColor: TColor): Boolean;
Var
w, h, x: Integer;
s2, d: PInteger;
Begin
Result:=False;
If Not (Assigned(Src1) or Assigned(Src2) or Assigned(Dest)) Then Exit;
w:=Src1.Width;
h:=Src1.Height;
If (w<>Src2.Width) or (h<>Src2.Height) Then Exit;
Src1.PixelFormat:=pf32Bit;
Src2.PixelFormat:=pf32Bit;
Dest.Assign(Src1);
s2:=Src2.ScanLine[h-1];
d:=Dest.ScanLine[h-1];
For x:=1 To w*h Do Begin
If s2^<>MaskColor Then d^:=s2^;
Inc(s2);
Inc(d);
End;
Result:=True;
End;
aufgerufen werden kann es zum Beispiel so hier:
Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
Var Src1, Src2, Dest: TBitmap;
begin
Src1:=TBitmap.Create;
Src2:=TBitmap.Create;
Dest:=TBitmap.Create;
Try
Src1.LoadFromFile('D:\1.bmp');
Src2.LoadFromFile('D:\2.bmp');
If MergeBitmaps(Src1, Src2, Dest, clWhite) Then
Image1.Picture.Bitmap.Assign(Dest);
Finally
FreeAndNil(Src1);
FreeAndNil(Src2);
FreeAndNil(Dest);
End;
end;