GDI-Bilder Drehen

  • Hi,
    ich habe leider keine Ahnung von GDI+.
    Ich brauch eine Funktion, die mein Bild um eine Bestimmt Gradzahl drehen kann.
    Das Funktioniert ja mit _GDIPlus_Matrix...
    So wie ich das bis jetzt Verstanden hab dreht man den Hintergrund des Bildes und zeichnet auf den gedrehten Hintergrund das Bild drauf. Wenn der Hintergrund jetzt wieder gerade ist, ist das draufgezeichnete Bild logischerweise gedreht.


    Allerdings weis ich nicht, wie man einen leeren Hintergrund erstellt. Weil ich ja eigentlich nur ein einziges Bild drehen will.



    Das funktioniert logischerweise nicht :D.
    Kann mir vielleicht mal schnell jemand auf die Sprünge Helfen?


    Danke :)
    anno2008

  • Hallo anno2008,


    dieses Beispiel aus der Hilfe sollte dir weiterhelfen:


    mfg (Auto)Bert

  • Oder so:


  • Hi,
    ja, ich hab beide Beispiele gesehn. Ich will das Bild aber nicht in der GUI anzeigen lassen, sondern es als gedrehtes Bild abspeichern. Deshalb brauch ich ja ein "leeres" Bild, aber nicht die GUI, das ich drehen kann und das andere dann draufzeichnen kann. Ich weis aber leider nicht wie das geht und weil ich mit GDI+ noch nie was großes gemacht hab finde ich auch den Befehl gerade nicht.

  • Das nutzt mir überhaupt nix. Kann mir vielleicht nicht einfach mal jemand ein Script geben?
    Bei _GDIPlus_ImageSaveToFile werden die Daten von einem Screenshot bezogen. Ich brauch ein leeres Bild oder sowas.

  • Sry, das ist wohl schwerer als ich gedacht habe.
    Ich verstehe einfach nicht, wie man den "Hintergrund" auf die richtige Größe bringen kann, weil das Bild ja durch das drehen in Breite und Höhe größer oder auch kleiner werden kann.
    Gibt es vielleicht eine bessere Möglichkeit ein Bild zu drehen?

  • Hallo Anno2008,
    du brauchst keine GUI um das Bild zu drehen, und auch kein "leeres" Bid.
    Ablauf:
    -Die Daten aus deiner Bitmap clonen
    -Aus der Bitmap ein Graphiccontext machen (Leinwand), in das man zeichnen kann
    -Matrix vorbereiten und drehen
    -Clone in den Context zeichnen (dabei wird er gedreht)
    -Leinwand speichern


    */EDIT/* du hast schon gemerkt, daß man beim Drehen aufpassen muss, grosse Winkel gehen nicht "auf einmal" , sondern man muss ggf mehrmals drehen und dabei den Mittelpunkt der Drehung anpassen

  • Hallo,
    danke für deine Antwort.
    Das ist ein Ansatz. Du benutzt als Hintergrund jetzt das original Bild und zeichnest das geklonte darüber. Allerdings soll der Hintergrund ja weiß sein, weil ich nur das Bild an sich drehen will.
    Also brauch ich im Prinzip doch ein "leeres Bild", auf dass ich das Originalbild Zeichnen kann. Aber ein noch größeres Problem hab ich damit die Größe anzupassen. Dadurch, dass ich das Bild oben links drehe wird das Gesamtbild breiter. Wenn ich wüsste wie man das "leere Bild" erstellen kann, könnte ich ausrechnen, wie breit und hoch das neue Bild sein muss, damit das Bild dann reinpasst.


    autoit.de/wcf/attachment/6194/
    autoit.de/wcf/attachment/6193/


    So soll sich das verändern.

  • aaahhhh, jetzt wirds hell^^
    Ja natürlich musst du dann ein entsprechend grösseres Bild erstellen, das bissl Fingerabzählen wg der Größe sollte aber kein Problem sein^^
    Als "Hintergrund" nimmst du dann einfach ein GUI-Fenster (nicht angezeigt) in der entsprechenden Größe.