Einzelnen Beitrag anzeigen

gangs-taas

Registriert seit: 24. Mär 2009
364 Beiträge
 
#1

aus 2 bildern eins machen

  Alt 21. Nov 2009, 22:30
hey,
ich wollte aus 2 Bildern 1 machen. Hierbei gibt es aber nen kleinen Überschnitt...

so theoretisch funktioniert meine schleife auch ABer wenn ich sie länger laufen lasse fliege ich mit der meldung 'für diese berechung ist zu wenig speicher vorhanden' raus ... das kann eigl. nicht sein ich hab 3 Gb Ram ...

könntet ihr euch mein code mal angucken und sagen wo das Speicherleck ist ?
danke schonmal :

Delphi-Quellcode:
procedure TForm1.Zusammsetzen(Start: Integer);
var
  Bild: TBitmap ;
  ZBild1, ZBild2 : TBitmap ;
  Name_B1, Name_B2 : String ;

  procedure Schneiden(Name: string);
  var
    Bild : TBitmap;
  begin
    Bild := TBitmap.Create;
    try
      Bild.LoadFromFile(Name+'.Bmp');
      Bild.Canvas.CopyRect(Rect(0, 0, 914, 687), Bild.Canvas, Rect(153, 4, 1067, 690));
      Bild.Width := 914;
      Bild.Height := 687;
      Image1.Picture.Assign(Bild);
      Bild.SaveToFile(Name+'.bmp');
    finally
      Bild.Free;
    end;
  end;

  procedure Schneiden2(Name: string);
  var
    Bild : TBitmap;
  begin
    Bild := TBitmap.Create;
    try
      Bild.LoadFromFile(Name+'.Bmp');
      Bild.Canvas.CopyRect(Rect(0, 0, 914, 687), Bild.Canvas, Rect(153, 4, 1067, 687));
      Bild.Width := 914;
      Bild.Height := 687;
      Image2.Picture.Assign(Bild);
      Bild.SaveToFile(Name+'.bmp');
    finally
      Bild.Free;
    end;
  end;


begin
  Schneiden(IntToStr(Start));
  Schneiden2(IntToStr(Start +1));
  Bild := TBitmap.Create;
  ZBild2 := TBitmap.Create;
  ZBild1 := TBitmap.Create;
  Bild.Width := 914;
  Bild.Height := 1369 ;
  Name_B1 := IntToStr(Start);
  Name_B2 := IntToSTr(Start +1 );
  ZBild1.LoadFromFile(name_B1 + '.bmp');
  ZBild2.LoadFromFile(name_B2 + '.bmp');
  DeleteFile(Name_B1 + '.bmp');
  DeleteFile(Name_B2 + '.bmp');
  Bild.Canvas.CopyRect(Rect(0, 0, 914, 687), ZBild1.Canvas, Rect(0, 0, ZBild1.Width, ZBild1.Height));
  Bild.Height := 614;
  Bild.Height := 1369;
  Bild.Canvas.CopyRect(Rect(0, 625, 914, 1369), ZBild2.Canvas, Rect(0, 0, ZBild2.Width, ZBild2.Height));
  Image3.Picture.Assign(Bild);
  Image3.Picture.SaveToFile(name_B1 + '.bmp');
end;
könnt ihr mir sagen wo der fehler ist ?
  Mit Zitat antworten Zitat