GDI+ sperrt Dateien

  • Hi,

    ich habe das Problem, dass GDI+ die Bildateien welche mit _GDIPlus_ImageLoadFromFile geladen werden nichtmehr freigibt, sprich ich sie so lange das Programm noch läuft nicht löschen kann, obwohl ich eigentlich die Ressource mit _GDIPlus_ImageDispose freigebe.

    Weiß einer was ich falsch mache:

    Spoiler anzeigen
    [autoit]

    Func merge($x, $y, $width, $height, $save, $orientation, $nachbar = "")

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

    _GDIPlus_Startup()

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

    $merger = GUICreate("Form1", 400, 400)
    $hGraphic = _GDIPlus_GraphicsCreateFromHWND($merger)
    $hBitmap = _GDIPlus_BitmapCreateFromGraphics($x * $width, $y * $height, $hGraphic)
    $hGraphic1 = _GDIPlus_ImageGetGraphicsContext($hBitmap)

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

    $count = 0

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

    For $i = 0 To $y - 1 Step 1
    For $k = 0 To $x - 1 Step 1
    $hSource = _GDIPlus_ImageLoadFromFile($save & "\" & $orientation & $nachbar & "\" & $count & ".jpeg")

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

    _GDIPlus_GraphicsDrawImage($hGraphic1, $hSource, 256 * $k, 256 * $i)
    $count = $count + 1
    Next
    Next

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

    _GDIPlus_ImageSaveToFile($hBitmap, $save & "\" & $orientation & $nachbar & ".jpeg")

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

    _GDIPlus_GraphicsDispose($hGraphic)
    _GDIPlus_GraphicsDispose($hBitmap)
    _GDIPlus_ImageDispose($hSource)
    _GDIPlus_Shutdown()
    EndFunc ;==>merge

    [/autoit]

    Andy hat mir ein Schnitzel gebacken aber da war ein Raupi drauf und bevor Oscar das Bugfixen konnte kam Alina und gab mir ein AspirinJunkie.

    Einmal editiert, zuletzt von chip (31. Mai 2013 um 16:51)


  • Edit: $hBitmap gibst du auch nie wieder frei...


    Mh wiso? Ich habe doch "_GDIPlus_GraphicsDispose($hBitmap)"

    Andy hat mir ein Schnitzel gebacken aber da war ein Raupi drauf und bevor Oscar das Bugfixen konnte kam Alina und gab mir ein AspirinJunkie.