Einzelnen Beitrag anzeigen

Muetze1
(Gast)

n/a Beiträge
 
#30

Re: Bild an der x-aschse spiegeln

  Alt 16. Mär 2008, 01:49
Grundsätzlich: TImage mag es nicht wenn man das Bitmap direkt verändert - weil das TImage spuckt einem zumindest in die Suppe. Von daher im Anhang ein fertiges Beispielprog.

Delphi-Quellcode:
procedure MirrorV(AImage: TImage);
var
  lBmp: TBitmap;
begin
  lBmp := TBitmap.Create;
  try
    lBmp.Assign(AImage.Picture.Graphic);

    StretchBlt(lBmp.Canvas.Handle,
                 0,
                 0,
                 lBmp.Width,
                 lBmp.Height,
               lBmp.Canvas.Handle,
                 0,
                 lBmp.Height,
                 lBmp.Width,
                 -lBmp.Height,
               SRCCOPY);

    AImage.Picture.Assign(lBmp);;
  finally
    lBmp.Free;
  end;
end;

procedure MirrorH(AImage: TImage);
var
  lBmp: TBitmap;
begin
  lBmp := TBitmap.Create;
  try
    lBmp.Assign(AImage.Picture.Graphic);

    StretchBlt(lBmp.Canvas.Handle,
                 0,
                 0,
                 lBmp.Width,
                 lBmp.Height,
               lBmp.Canvas.Handle,
                 lBmp.Width,
                 0,
                -lBmp.Width,
                 lBmp.Height,
               SRCCOPY);
               
    AImage.Picture.Assign(lBmp);;
  finally
    lBmp.Free;
  end;
end;
Angehängte Dateien
Dateityp: zip stretchblt_mirroring_200.zip (51,7 KB, 5x aufgerufen)
  Mit Zitat antworten Zitat