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;