Bilder laden

  • könnt ihr mir sagen wie der befehl ist um ein Bild laden zu lassen mit GDIPlus??


    danke

  • irgendwie lädt er die datei nicht

    ich hab folgendes stehen

    [autoit]

    _GDIPlus_ImageLoadFromFile("bild.jpg")

    [/autoit]
  • ich hatte mich mal an ein pacman gesetzt und da wollte ich jetz halt die figuren einfügen


    Spoiler anzeigen
    [autoit]

    #include <GDIPlus.au3>
    #include <GUIConstants.au3>
    #include <Misc.au3>

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

    Global $GuiWidth = 600
    Global $GuiHeight = 600
    Global $iX = 100
    Global $iY = 100
    Global $piewidth = 0
    Global $pieheight = 320

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

    $form = GUICreate ("Test",600,600)
    $hwnd = WinGetHandle ($form)
    GUISetState (@SW_SHOW)

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

    _GDIPlus_Startup ()

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

    $hgraphics = _GDIPlus_GraphicsCreateFromHWND ($hwnd)
    $hBitmap = _GDIPlus_BitmapCreateFromGraphics($GUIWidth, $GUIHeight, $hgraphics)
    $hBuffer = _GDIPlus_ImageGetGraphicsContext($hBitmap)
    _GDIPlus_GraphicsSetSmoothingMode($hBuffer, 2)
    $pac = _GDIPlus_BrushCreateSolid (0xFFFFFF00)
    _GDIPlus_GraphicsFillPie ($hgraphics, 100,100, 25, 25,0,320, $pac)

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

    _GDIPlus_ImageLoadFromFile ("pacman.jpg")

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

    While 1
    $nMsg = GUIGetMsg(1)
    Switch $nMsg[0]
    Case $GUI_EVENT_CLOSE
    Exit
    EndSwitch
    If _IsPressed ("25") Then
    $iX -= 3
    Draw1()
    EndIf
    If _IsPressed ("26") Then
    $iY -=3
    Draw2()
    EndIf
    If _IsPressed ("27") Then
    $iX +=3
    Draw()
    EndIf
    If _IsPressed ("28") Then
    $iY +=3
    Draw3()
    EndIf

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

    WEnd

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

    Func Draw()
    _GDIPlus_GraphicsClear($hgraphics)
    _GDIPlus_GraphicsFillPie ($hgraphics, $iX,$iY,25,25,0,320,$pac)
    EndFunc
    Func Draw1()
    _GDIPlus_GraphicsClear ($hgraphics)
    _GDIPlus_GraphicsFillPie ($hgraphics, $iX,$iY,25,25,220,320,$pac)
    EndFunc
    Func Draw2()
    _GDIPlus_GraphicsClear ($hgraphics)
    _GDIPlus_GraphicsFillPie ($hgraphics, $iX,$iY,25,25,270,320,$pac)
    EndFunc
    Func Draw3()
    _GDIPlus_GraphicsClear ($hgraphics)
    _GDIPlus_GraphicsFillPie ($hgraphics, $iX,$iY,25,25,130,320,$pac)
    EndFunc
    Func _Exit()
    _GDIPlus_BrushDispose($pac)
    _GDIPlus_GraphicsDispose($hBuffer)
    _GDIPlus_BitmapDispose($hBitmap)
    _GDIPlus_GraphicsDispose($hgraphics)
    _GDIPlus_Shutdown()
    EndFunc

    [/autoit]
  • Du zeichnest einen Pacman um danach ein Bild von ihm zu laden ohne dessen Handle in einer Variable zu speichern?
    Hast du dir mal ein Tutorial durchgelesen wie wir es dir vermutlich schon oft empfohlen haben? Wohl kaum... Du kennst scheinbar nicht mal den Unterschied zwischen Back- und Frontbuffer, verwendest es aber gleich mal in "deinem" Script. :thumbdown:
    Das ist zwar immer noch völlig ineffizient, da du Tastendrücke mitten in der GUILoop abfragst, und alles in 5ms Abständen neu zeichnest, aber so müsste es funktionieren... :rolleyes:

    Spoiler anzeigen
    [autoit]

    #include <GDIPlus.au3>
    #include <GUIConstants.au3>
    #include <Misc.au3>

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

    Global $GUIWidth = 600
    Global $GUIHeight = 600
    Global $iX = 100
    Global $iY = 100
    Global $piewidth = 0
    Global $pieheight = 320

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

    $form = GUICreate("Test", 600, 600)
    $hwnd = WinGetHandle($form)
    GUISetState(@SW_SHOW)

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

    _GDIPlus_Startup()

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

    $hgraphics = _GDIPlus_GraphicsCreateFromHWND($hwnd)
    $hBitmap = _GDIPlus_BitmapCreateFromGraphics($GUIWidth, $GUIHeight, $hgraphics)
    $hBuffer = _GDIPlus_ImageGetGraphicsContext($hBitmap)
    _GDIPlus_GraphicsSetSmoothingMode($hBuffer, 2)
    ;~ $pac = _GDIPlus_BrushCreateSolid (0xFFFFFF00)
    ;~ _GDIPlus_GraphicsFillPie ($hgraphics, 100,100, 25, 25,0,320, $pac)

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

    $hImage_pac = _GDIPlus_ImageLoadFromFile("pacman.jpg")

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

    _GDIPlus_GraphicsDrawImageRect($hgraphics, $hBitmap, 0, 0, $GUIWidth, $GUIHeight)

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

    While 1
    $nMsg = GUIGetMsg(1)
    Switch $nMsg[0]
    Case $GUI_EVENT_CLOSE
    Exit
    EndSwitch
    If _IsPressed("25") Then
    $iX -= 3
    Draw()
    EndIf
    If _IsPressed("26") Then
    $iY -= 3
    Draw()
    EndIf
    If _IsPressed("27") Then
    $iX += 3
    Draw()
    EndIf
    If _IsPressed("28") Then
    $iY += 3
    Draw()
    EndIf
    WEnd

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

    Func Draw()
    _GDIPlus_GraphicsClear($hgraphics)
    _GDIPlus_GraphicsDrawImageRect($hgraphics, $hImage_pac, $iX, $iY, 25, 25)
    _GDIPlus_GraphicsDrawImageRect($hBuffer, $hBitmap, 0, 0, $GUIWidth, $GUIHeight)
    EndFunc ;==>Draw

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

    Func _Exit()
    _GDIPlus_GraphicsDispose($hBuffer)
    _GDIPlus_BitmapDispose($hBitmap)
    _GDIPlus_GraphicsDispose($hgraphics)
    _GDIPlus_ImageDispose($hImage_pac)
    _GDIPlus_Shutdown()
    EndFunc ;==>_Exit

    [/autoit]
  • schlauberger jetz übermalt er mein pacman und ich möchte nicht den ghost selber steuern sondern der steuert sich dann später selber