Grafikobjekt erstellen

  • Hi, ich hab jetzt nach ein bissel schmöckern im Forum rausgefunden, dass ich mit AutoIt ja sogar Grafiken bearbeiten kann.

    Jetzt hab ich nur eine Frage:
    Wie kann ich ein Grfikobjekt mit einer Größe von sagen wir mal 3000x3000 Pixeln erstellen.

    In der Hilfe und in im Forum geposteten Skripten wird ein Grafikobjekt meistens aus einem Screeshot erstellt, also:

    Code
    $hGraphics = _GDIPlus_ImageGetGraphicsContext ($hImage1)

    Mein Problem, ich hab keinen so großen Bildschirm :S

    Gibt es einen Weg die Größe eines Grafikobjekts anzugeben?

    Einmal editiert, zuletzt von Zord (14. Dezember 2008 um 16:40)

  • Wenn man eine Grafik erstellen will, die nicht auf eine GUI gezeichnet werden soll, einfach so was machen:

    Spoiler anzeigen
    [autoit]

    #include <GDIplus.au3>
    _GDIPlus_Startup()

    [/autoit] [autoit][/autoit] [autoit]

    $BitmapHeight = 300
    $BitmapWidth = 300

    [/autoit] [autoit][/autoit] [autoit]

    ; BEGINN Bitmap erstellen
    $tempGraph = _GDIPlus_GraphicsCreateFromHWND(_WinAPI_GetDesktopWindow())
    $hBitmap = _GDIPlus_BitmapCreateFromGraphics($BitmapWidth,$BitmapHeight,$tempGraph)
    _GDIPlus_GraphicsDispose($tempGraph)
    ; ENDE Bitmap erstellen

    [/autoit] [autoit][/autoit] [autoit]

    ; Graphics zum zeichnen auf Bitmap
    $hGraphics = _GDIPlus_ImageGetGraphicsContext($hBitmap)

    [/autoit] [autoit][/autoit] [autoit]

    ; Hintergrund weiß machen
    _GDIPlus_GraphicsClear($hGraphics,0xFFFFFFFF) ; weiß, 100% deckkraft

    [/autoit] [autoit][/autoit] [autoit]

    ; Ellipse
    _GDIPlus_GraphicsDrawEllipse($hGraphics,50,50,$BitmapWidth-100,$BitmapHeight-100)

    [/autoit] [autoit][/autoit] [autoit]

    ; speichern
    _GDIPlus_ImageSaveToFile($hBitmap,@DesktopDir & "\GDIPlus_AU3_DEMO.jpg")

    [/autoit] [autoit][/autoit] [autoit]

    ; Bitmap-Objekt löschen
    _GDIPlus_BitmapDispose($hBitmap)

    [/autoit] [autoit][/autoit] [autoit]

    _GDIPlus_Shutdown()

    [/autoit] [autoit][/autoit] [autoit]

    ; öffnen
    ShellExecuteWait(@DesktopDir & "\GDIPlus_AU3_DEMO.jpg")
    ; evtl löschen
    If MsgBox(4, '', "Delete image?") = 6 Then FileDelete(@DesktopDir & "\GDIPlus_AU3_DEMO.jpg")

    [/autoit] [autoit][/autoit] [autoit][/autoit]