Bild um 90° drehen
-
Wie kann ich ein Bild, das in Windows und unter Visual C++ als HBITMAP gespeichert ist, um 90° nach rechts drehen? Ein zweites Bild anzulegen, das dann als Breite die ursprüngliche Höhe und als Höhe die ursprüngliche Breite bekommt, und dann sämtliche Pixel mit GetPixel und SetPixel zu übertragen, würde zu lange dauern. Kennt jemand da eine schnellere Möglichkeit?
-
Das mit dem GetPixel und SetPixel schlägt Microsoft aber genau vor ^^
Ansonsten habe ich noch zwei Artikel in Codeguru gefunden, vielleicht helfen sie was:
http://www.codeguru.com/Cpp/G-M/bitmap/specialeffects/article.php/c1743
http://www.codeguru.com/Cpp/G-M/gdi/article.php/c3693Grüssli
-
Dann werd ich das wohl mit Get- und SetPixel machen. Die beiden Links sind schon etwas zu viel. Die beschäftigen sich mit einer beliebigen Drehung. Ich will ja bloß eine von 90° haben. Außerdem ist das Programm bei der einen Funktion, als ich sie mal in mein Programm eingefügt habe, abgestürzt. Naja, was solls?
-
Get/SetPixel sind superlangsam. mach's bild in eine dibsection und dreh' es selber um. guckst du: http://msdn.microsoft.com/library/default.asp?url=/library/en-us/gdi/bitmaps_233i.asp
-
Wie drehe ich das Bild selbst um?
-
NES-Spieler schrieb:
Wie drehe ich das Bild selbst um?
Indem du die Pxiel entsprechend umkopierst. f'`8k
AutocogitoBye, TGGC (\-/ returns)
-
Na super. Dann sind wir wieder bei SetPixel. Meine Frage bezog sich aber auf die Idee "kein SetPixel benutzen, sondern das Bild selber umdrehen".
-
Du kannst dir auch direkt Zeiger auf die Bilddaten holen (siehe MSDN), das ist wesentlich schneller. f'`8k
Bye, TGGC (\-/ returns)