- Сообщения
- 3,608
- Репутация
- 941
Помогите правильно сохранить изменения в изображении. Вот я импортирую в программу map.jpg, далее если я повожу по нему курсором мыши зажав лкм, на нем останутся следы. Как мне далее сохранить изменения в этом изображении? Чтобы при нажатии на $Button1 у меня в папку со скриптом сохранялся измененный вариант картинки?
Код:
#include <GUIConstantsEx.au3>
#include <StaticConstants.au3>
#include <WindowsConstants.au3>
#include <Math.au3>
#include <GDIP.au3>
;~ #Include <GDIPlus.au3>
#include <Misc.au3>
Opt("MustDeclareVars",1)
OnAutoItExitRegister("_Exit")
Global $DLL = DllOpen("user32.dll")
Global $GuiName = "Path Finder v0.6 by Belfigor"
Global $hGUI = GUICreate($GuiName, 612, 537)
GUISetState(@SW_SHOW)
_GDIPlus_Startup ()
Global $hBitmap = _GDIPlus_BitmapCreateFromFile (@ScriptDir & "\map.jpg")
Global $hGraphics = _GDIPlus_GraphicsCreateFromHWND($hGUI)
_GDIPLus_GraphicsDrawImageRect($hGraphics, $hBitmap, 0, 0, 512, 512)
Global $xMax = _GDIPlus_ImageGetWidth ($hBitmap)
Global $yMax = _GDIPlus_ImageGetHeight ($hBitmap)
Global $Radio1 = GUICtrlCreateRadio("Непроходимый", 0, 512, 101, 17)
Global $Radio2 = GUICtrlCreateRadio("Проходимый", 105, 512, 89, 17)
Global $Radio3 = GUICtrlCreateRadio("Старт", 195, 512, 53, 17)
Global $Radio4 = GUICtrlCreateRadio("Финиш", 252, 512, 55, 17)
Global $Radio5 = GUICtrlCreateRadio("Непроходимый+", 310, 512, 101, 17)
Global $Radio6 = GUICtrlCreateRadio("Проходимый+", 415, 512, 170, 17)
Global $Button1 = GUICtrlCreateButton("Start", 512, 0, 100, 25)
Global $Button2 = GUICtrlCreateButton("Restart", 512, 25, 100, 25)
Global $Checkbox1 = GUICtrlCreateCheckbox("Проходимый+", 512, 50, 97, 17)
Global $hPen, $hBrush
While 1
Local $nMsg = GUIGetMsg()
Switch $nMsg
Case $GUI_EVENT_CLOSE
Exit
;~ Case $nMsg = 3 To 6
;~ ;
Case $Button1
_GDIPlus_ImageSaveToFile ($hBitmap, @ScriptDir&"\!GDIPlus_Image.jpg")
;~ Local $var = GetGeoData()
;~ GoHome($var[0], $var[1])
Case $Button2
Global $hGraphics = _GDIPlus_GraphicsCreateFromHWND($hGUI)
_GDIPLus_GraphicsDrawImageRect($hGraphics, $hBitmap, 0, 0, 512, 512)
EndSwitch
If _IsPressed("01") And WinActive($GuiName) Then
If BitAND(GUICtrlRead($radio1), $GUI_CHECKED) = $GUI_CHECKED Then ;Непроходимый 4278190080
$hBrush = _GDIPlus_BrushCreateSolid(0xFF000000)
ElseIf BitAND(GUICtrlRead($radio2), $GUI_CHECKED) = $GUI_CHECKED Then ;Проходимый 4294967295
$hBrush = _GDIPlus_BrushCreateSolid(0xFFFFFFFF)
ElseIf BitAND(GUICtrlRead($radio3), $GUI_CHECKED) = $GUI_CHECKED Then ;Старт 4294901760
$hBrush = _GDIPlus_BrushCreateSolid(0xFFFF0000)
ElseIf BitAND(GUICtrlRead($radio4), $GUI_CHECKED) = $GUI_CHECKED Then ;Финиш 4278255360
$hBrush = _GDIPlus_BrushCreateSolid(0xFF00FF00)
ElseIf BitAND(GUICtrlRead($radio5), $GUI_CHECKED) = $GUI_CHECKED Then ;Непроходимый+ 4278222976
$hBrush = _GDIPlus_BrushCreateSolid(0xFF008080)
ElseIf BitAND(GUICtrlRead($radio6), $GUI_CHECKED) = $GUI_CHECKED Then ;Проходимый+ 4290822336
$hBrush = _GDIPlus_BrushCreateSolid(0xFFC0C0C0)
EndIf
Local $pos = GUIGetCursorInfo()
_GDIPlus_GraphicsFillRect($hGraphics, $pos[0], $pos[1], 10, 10, $hBrush)
EndIf
WEnd