Thema: Delphi Addition von Bitmaps

Einzelnen Beitrag anzeigen

Phantom1

Registriert seit: 20. Jun 2003
282 Beiträge
 
Delphi 10.4 Sydney
 
#5

Re: Addition von Bitmaps

  Alt 20. Aug 2004, 11:45
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;
  Mit Zitat antworten Zitat