bitmap drehen ?



  • hi,

    wie drehe ich eine bitmap um 90°, 180° und 270° ??

    thx



  • Du kommst nich drumherum die Pixel manuell zu verschieben und die Bitmapgröße dann entsprechend zu ändern.

    Stichwörter:

    GetBitmapBits(..);
    //Bildpixel drehen
    ......
    CreateCompatibelBitmap(..);//Bitmap erstellen, wo die gedrehte Pixel reinsollen
    SetBitmapBits(..);//gedrehte Pixel in vorher erstelltes BMP zurückschreiben

    Ich hab das auch irgendwo als kompletten Quellcode, aber leider nicht hier.



  • hi,

    hab flg. herausgefunden:
    es gibt eine funktion PlgBlt(), die wird aber unter 95/98/me noch nicht unterstützt. is halt nur ein bischen peinlich, wenn ein programm unter 98 oder me gestartet wird, und nicht mal eine bitmap drehen kann. also komm ich um die pixel-für-pixel methode wohl nicht herum.

    hat jemand dazu mal den quelltext, oder muss ich meine grauen zellen bemühen ?

    lw



  • Ich hab den Quelltext, aber wie gesagt nicht hier (frühestens Donnerstag). Ist aber eigentlich ganz einfach:

    90° Rechts : 1. Zeile(oben) wird letzte Spalte(rechts)
    180° Rechts : 1. Pixel(l.o.) wird letzter Pixel(u.r.) u.s.w.

    naja, das sollte wohl also mit ein paar grauen Zellen hinzukriegen sein :p



  • Falls du den Petzold hast, da findest du das auf Seite 888 (deutsche Ausgabe).
    Falls nicht könnt ich dir das Programm theoretisch auch mailen (ist allerdings schon recht umfangreich) 🙄



  • Oder schreib einfach hier ab:
    http://www.leunen.com/cbuilder/rotbmp.html


Anmelden zum Antworten