Einzelnen Beitrag anzeigen

Benutzerbild von SirThornberry
SirThornberry
(Moderator)

Registriert seit: 23. Sep 2003
Ort: Bockwen
12.235 Beiträge
 
Delphi 2006 Professional
 
#5

Re: Wie Bitmaps in 90-Grad-Schritten drehen?

  Alt 3. Mär 2006, 01:32
naja, es gibt eine api funktion die bilder drehen kann. (auch in beliebigem winkel, du musst nur wissen wo die zielpunkte liegen)

Hier mal ein Beispiel unter Nutzung der Api-Funktion. Ich hab mal den Teil in Kommentare gesetzt welchen du brauchst für die quadratichen Bilder (der andere ist irrelevant und dient zur Höhen/Breiten-Anderung)
Delphi-Quellcode:
procedure Rotate(ABmp: TBitmap);
var LPoints : array[0..2] of TPoint;
    LOldSize: TPoint;
begin
  LOldSize := Point(ABmp.Width, ABmp.Height);
  if ABmp.Width > ABmp.Height then
    ABmp.Height := ABmp.Width
  else
    ABmp.Width := ABmp.Height;

  //Bei quadratichen Bildern ab hier
  LPoints[0] := Point(ABmp.Height, 0);
  LPoints[1] := Point(ABmp.Height, ABmp.Width);
  LPoints[2] := Point(0, 0);
  PlgBlt(ABmp.Canvas.Handle, LPoints, ABmp.Canvas.Handle, 0, 0, ABmp.Width, ABmp.Height, 0, 0, 0);
  //Bei quadratichen Bildern bis hier

  ABmp.Width := LOldSize.Y;
  ABmp.Height := LOldSize.X;
end;
Jens
Mit Source ist es wie mit Kunst - Hauptsache der Künstler versteht's
  Mit Zitat antworten Zitat