Rotate Bitmap um 90°
-
@Ronco: In deiner Schleife in den Zeilen 102-114 kopiert dein Code ja auch gar nichts.
Wenn du schon WinAPI-Funktionen wie
BitBlt
oderStretchBlt
benutzt, dann kannst du auch PlgBlt zum Rotieren benutzen, s. z.B. den Delphi-Code Rotate TImage in Delphi dafür.Oder so per
ScanLine
: Delphi/Lazarus - Rotate TBitmap 90 degrees
-
@Ronco Da du eh die Win32 API nutzt (Und davon die GDI API) zum zeichnen der bilder, könntest du auch die GDI API für Transform nutzen um die Bilder vor dem zeichnen zu rotieren.
https://learn.microsoft.com/en-us/windows/win32/gdi/coordinate-spaces-and-transformations
Falls man von TBitmap nach GDI+ klassen kommen kann, wäre auch die GDI+ API (C++) eine alternative
https://learn.microsoft.com/en-us/windows/win32/gdiplus/-gdiplus-rotating-reflecting-and-skewing-images-use
-
@firefly : Vielen Dank für die Tipps, werde das mal prüfen.
@Th69 : Vielen Dank für den Hinweis mit PlgBlt, damit funktioniert es, und auch schnell ! So werde ich es jetzt lassen, obwohl mich das ärgert, dass ich den Tipp von @DocShoe nicht umsetzen kann. Das ganze Pointer Geraffel fällt mir nicht leicht, aber ich probier mal weiter, nur dem Interesse wegen