GDI+ Lernbeispiel

  • Ich versuche mich gerade GDI+ bekannt zu machen. Allerdings habe ich ein wenig Schwierigkeiten mit dem Speichern von einem Bild:

    Spoiler anzeigen
    [autoit]


    #include <GDIplus.au3>
    #include <GUIConstantsEx.au3>

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

    #Region ### START Koda GUI section ### Form=
    $Form1 = GUICreate("Form1", 326, 248, 192, 124)
    GUISetState(@SW_SHOW)
    #EndRegion ### END Koda GUI section ###
    _GDIPlus_Startup()
    global $pen=_GDIPlus_PenCreate(0xFFFF0000,2)
    global $gra=_GDIPlus_GraphicsCreateFromHWND($Form1)

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

    While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
    Case $GUI_EVENT_CLOSE
    es()

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

    EndSwitch
    _GDIPlus_GraphicsDrawLine($gra,1,1,100,10,$pen)
    sleep(50)
    WEnd

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

    func es()
    _GDIPlus_GraphicsDrawLine($gra,1,1,100,10,$pen)
    $ima=_GDIPlus_BitmapCreateFromGraphics(100,10,$gra)
    _GDIPlus_ImageSaveToFile($ima,@ScriptDir&"\a.bmp")
    _GDIPlus_PenDispose($pen)
    _GDIPlus_GraphicsDispose($gra)
    _GDIPlus_BitmapDispose($ima)
    _GDIPlus_Shutdown()
    exit
    EndFunc

    [/autoit]


    Wäre schön wenn mir jemand sagen könnte, warum dass Bild nur aus Schwarz besteht.

    Einmal editiert, zuletzt von TheShadowAE (15. Februar 2010 um 12:25)

  • Hallo.
    Hier der verbesserte Code.

    Spoiler anzeigen
    [autoit]

    #include <GDIplus.au3>
    #include <GUIConstantsEx.au3>

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

    #Region ### START Koda GUI section ### Form=
    $Form1 = GUICreate("Form1", 326, 248, 192, 124)
    GUISetState(@SW_SHOW)
    #EndRegion ### END Koda GUI section ###
    _GDIPlus_Startup()
    global $pen=_GDIPlus_PenCreate(0xFFFF0000,2)
    global $gra=_GDIPlus_GraphicsCreateFromHWND($Form1)
    Global $hBitmap = _GDIPlus_BitmapCreateFromGraphics(326, 248, $gra)
    Global $backbuff = _GDIPlus_ImageGetGraphicsContext($hBitmap)
    While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
    Case $GUI_EVENT_CLOSE
    es()

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

    EndSwitch
    _GDIPlus_GraphicsDrawLine($backbuff, 5, 7, 100, 50, $pen)
    _GDIPlus_GraphicsDrawImageRect($gra, $hBitmap, 0, 0, 326, 248)
    sleep(50)
    WEnd

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

    func es()
    _GDIPlus_GraphicsDrawLine($gra,1,1,100,10,$pen)
    $fop = FileSaveDialog("Speichern unter...", @MyDocumentsDir, "JPEG (*.jpg;*.jpeg;)")
    $sCLSID = _GDIPlus_EncodersGetCLSID ("JPG")
    _GDIPlus_ImageSaveToFileEx($hBitmap, $fop, $sCLSID)
    _GDIPlus_PenDispose($pen)
    _GDIPlus_GraphicsDispose($gra)
    _GDIPlus_BitmapDispose($hBitmap)
    _GDIPlus_Shutdown()
    exit
    EndFunc

    [/autoit]

    Edit: So speichern is nun auch drinne.

    Meine Projekte:
    ClipBoard Manager (beendet)
    Gutes ClipBoard Verwaltungs Programm mit nützlichen Funktionen.

    HTML Creator (beendet)
    Nützliches Tool um schnell ein eigenes HTML Dokument zu erstellen.