könnt ihr mir sagen wie der befehl ist um ein Bild laden zu lassen mit GDIPlus??
danke
könnt ihr mir sagen wie der befehl ist um ein Bild laden zu lassen mit GDIPlus??
danke
_GDIPlus_ImageLoadFromFile(...)
[/autoit]danke
Wenn das Bild nicht mehr benötigt wird
[autoit]_GDIPlus_ImageDispose()
[/autoit]
benutzen.
irgendwie lädt er die datei nicht
ich hab folgendes stehen
[autoit]_GDIPlus_ImageLoadFromFile("bild.jpg")
[/autoit]_GDIPlus_ImageLoadFromFile gibt auch einen Handle zurück den du benutzen musst
//Edit: Zeig mal den kompletten script
ich hatte mich mal an ein pacman gesetzt und da wollte ich jetz halt die figuren einfügen
#include <GDIPlus.au3>
#include <GUIConstants.au3>
#include <Misc.au3>
Global $GuiWidth = 600
Global $GuiHeight = 600
Global $iX = 100
Global $iY = 100
Global $piewidth = 0
Global $pieheight = 320
$form = GUICreate ("Test",600,600)
$hwnd = WinGetHandle ($form)
GUISetState (@SW_SHOW)
_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)
_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
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
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.
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...
#include <GDIPlus.au3>
#include <GUIConstants.au3>
#include <Misc.au3>
Global $GUIWidth = 600
Global $GUIHeight = 600
Global $iX = 100
Global $iY = 100
Global $piewidth = 0
Global $pieheight = 320
$form = GUICreate("Test", 600, 600)
$hwnd = WinGetHandle($form)
GUISetState(@SW_SHOW)
_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)
$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
Func Draw()
_GDIPlus_GraphicsClear($hgraphics)
_GDIPlus_GraphicsDrawImageRect($hgraphics, $hImage_pac, $iX, $iY, 25, 25)
_GDIPlus_GraphicsDrawImageRect($hBuffer, $hBitmap, 0, 0, $GUIWidth, $GUIHeight)
EndFunc ;==>Draw
Func _Exit()
_GDIPlus_GraphicsDispose($hBuffer)
_GDIPlus_BitmapDispose($hBitmap)
_GDIPlus_GraphicsDispose($hgraphics)
_GDIPlus_ImageDispose($hImage_pac)
_GDIPlus_Shutdown()
EndFunc ;==>_Exit
schlauberger jetz übermalt er mein pacman und ich möchte nicht den ghost selber steuern sondern der steuert sich dann später selber