GDIPlus verhindert GUICtrlCreatePic

  • Ich bin auf ein Scheinbar Merwürdiges Problem gestoßen, denn folgender Code funktioniert nicht:

    [autoit]


    _GDIPlus_Startup()
    _GDIPlus_ImageLoadFromFile(@scriptdir & "\test.jpg")

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

    GUICreate("test")
    GUICtrlCreatePic(@scriptdir & "\test.jpg",5,5)
    GUISetState()

    [/autoit]

    Alle Bilder welche schon einmal mit _GDIPlus_ImageLoadFromFile geladen wurden können danach nicht mehr mit GUICtrlCreatePic angezeigt werden. Hat Jemand eine Idee wie ich dieses Problem umgehen kann?

    MfG Oger-Lord

    Einmal editiert, zuletzt von Oger-Lord (23. Juni 2009 um 16:07)

  • Hallo,
    das Pic ist "gelockt", um genau diesen zugriff zu vermeiden, daher

    [autoit]

    _GDIPlus_Startup()
    $hImage=_GDIPlus_ImageLoadFromFile(@scriptdir & "\test.jpg")
    _GDIPlus_ImageDispose($hImage)

    [/autoit]


    das Bild zum bearbeiten freigeben

    • Offizieller Beitrag

    Falls du es aber zeitgleich in beiden Varianten benötigst, klone es doch:

    [autoit]

    #Include <GDIPlus.au3>
    Local $path = "C:\WINDOWS\system32\oobe\images\oemlogo.gif"
    _GDIPlus_Startup()
    Local $hImage = _GDIPlus_ImageLoadFromFile($path)
    Local $tmpPath = @TempDir & '\oemlogo.gif'
    _GDIPlus_ImageSaveToFile($hImage, $tmpPath)

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

    $gui = GUICreate("test")
    $pic = GUICtrlCreatePic($tmpPath, 20, 20, 255, 40)
    GUISetState()

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

    Do
    Sleep(50)
    Until GUIGetMsg() = -3

    [/autoit]