Einzelnen Beitrag anzeigen

xxsasch4xx

Registriert seit: 1. Mär 2010
210 Beiträge
 
#1

bild zerschneiden

  Alt 29. Apr 2010, 18:15
hallo will ein bild ein 16 einzelteile schneiden und abspeichern auf der festplatte

Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
var Quelle, Ziel: TBitmap;
    X, Y: integer;
begin
  Quelle := TBitmap.Create;
  try
    Ziel := TBitmap.Create;
    try
      Quelle.LoadFromFile('beispielbild.bmp');
      Ziel.Width := Quelle.Width div 4;
      Ziel.Height := Quelle.Height div 4;

      X := 0;
      Y := 0;

      Ziel.Canvas.CopyRect(Rect(0,0,Ziel.Width,Ziel.Height),
                           Quelle.Canvas,
                           Rect(X,Y,X + Ziel.Width, Y + Ziel.Height));
      Ziel.SaveToFile('teilstück1.bmp');

      inc(X,Ziel.Width);

      Ziel.Canvas.CopyRect(Rect(0,0,Ziel.Width,Ziel.Height),
                           Quelle.Canvas,
                           Rect(X,Y,X + Ziel.Width, Y + Ziel.Height));
      Ziel.SaveToFile('teilstück2.bmp');

      inc(X,Ziel.Width);

      Ziel.Canvas.CopyRect(Rect(0,0,Ziel.Width,Ziel.Height),
                           Quelle.Canvas,
                           Rect(X,Y,X + Ziel.Width, Y + Ziel.Height));
      Ziel.SaveToFile('teilstück3.bmp');

      inc(X,Ziel.Width);

      Ziel.Canvas.CopyRect(Rect(0,0,Ziel.Width,Ziel.Height),
                           Quelle.Canvas,
                           Rect(X,Y,X + Ziel.Width, Y + Ziel.Height));
      Ziel.SaveToFile('teilstück4.bmp');
    finally
      Ziel.Free;
    end;
  finally
    Quelle.Free;
  end;
end;
dies ist die erste zeile für die ersten 4 pics oben !
ich will es vieleicht in einer schleife durchlaufen lassen dass er die bilder in 16 teile zerschneidet funktioniert aber irgentwie noch nicht richtig wenn ich Y variable um 50 erhöhe und X wieder auf null stell

kann mir vieleicht einer helfen?
  Mit Zitat antworten Zitat