所需依赖库下载:
代码:
;*************************************************************************************************** ;*************************************************************************************************** ;*************************************************************************************************** ; #Include <Gdip> ;<------ Replace with your copy of GDIP /* ;*************************************************************************************************** ;*************************************************************************************************** ;*************************************************************************************************** ;################################################################################################################################################## ;################################################################################################################################################## ; Written By: Hellbent aka CivReborn (https://www.youtube.com/user/CivReborn) ; Date Started: March 1st, 2019 ; Date of Last Edit: July 19th, 2021 ; Current Version: v0.1.10 Early Alpha ; Credits: Speed Master , ; Updates: v0.1.10 - July 19th, 2021 ;--------------------------------------------------------------------------------------------------------------- ; Can now add pictures to a bitmap. ; Can load a bitmap that has a picture ; Can export code to add a picture to a bitmap. ; Export code condenced ( Brush , Shape , Delete ) ; Can crop or Resize Images. ; Can add text to images. ; Updates: v0.1.8 - March 29th, 2020 ;--------------------------------------------------------------------------------------------------------------- ; Element Listbox now shows if a element has a note attached to it. ; Gdip library removed from the script, user must now #Include it. ; Updates: v0.1.7 - June 6th, 2019 ;--------------------------------------------------------------------------------------------------------------- ; Fixed major memory leak ; Added Refactored code submitted by - Speed Master ; Added Extra Hotkeys Submitted by - Speed Master ; Added Save progress bar to Save tab, can now see the save progress. ; Removed +AlwaysOnTop Option. ; Added CREDITS DDL to tab 6. ; Other small changes. ; Updates: v0.1.5 ;--------------------------------------------------------------------------------------------------------------- ; Fill_poygon Added. ; Draw_Lines Added. ; Element Control Panel Update. ; Can now dump bitmap functions directly into clipboard. ; Can now clone a element. ; Smoothing and a lock added to bitmap control panel. ; Text now uses brushes. ; Defaults can now be set and saved to file ; Can now use cursor to set 2 Gradient Brush positions ; Can now use element control panel to adjust all 4 points of a bezier line ; Arrow keys can be used while setting polygon,lines points, gradient points. ; Other minor changes ; Updates: v0.1.4 ;--------------------------------------------------------------------------------------------------------------- ; Minor Bug fixes ; Updates: v0.1.3 ;--------------------------------------------------------------------------------------------------------------- ; New control panel to adjust bitmap settings ; You can now zoom in or out of a bitmap. ; You can now adjust the size of a bitmap after it has been created. ; Updates: v0.1.2 ;--------------------------------------------------------------------------------------------------------------- ; Bitmaps can now be reloaded into the editor later. ; A sound will play and a traytip will pop up when a bitmap is finished saving (Large bitmaps can take 1 min or more to save) ; Multiple copies of the same bitmap can be running at the same time ; Bitmap saves can now be named. ; Bitmap save files can be deleted from within the editor. (Data File and Function File) ; Fixed the output code so that Smoothing is set for the Graphics and not the bitmap (oops) ; Notes will now show up in output code (Functions) ; There is now a master folder that contains 3 additional folders for the saved bitmaps and pngs ; Hidding / UnHidding a element will reselect that element (List was going to the top if the list was longer than dispaly Listbox) ;Version v0.1.10 Paste: ;July 19th, 2021 ;Version v0.1.8 Paste: https://pastebin.com/y4nMyj7z ;March 29th, 2020 ;Version v0.1.7 Paste: https://pastebin.com/cdaTYN5U ;June 6th, 2019 ;Version v0.1.3 Paste: https://pastebin.com/pscPkD7g ;March 9th, 2019 ;Version v0.1.2 Paste: https://pastebin.com/QMYpJaxY ;March 8th, 2019 ;Version v0.1.1 Paste: https://pastebin.com/pPBEphce ;Version v0.0.6 Paste: https://pastebin.com/A4h2fdEy */ #SingleInstance, Force SetBatchLines,-1 SetTitleMatchMode, 3 #NoEnv IfNotExist,%A_ScriptDir%\HB Bitmap Maker Folder { FileCreateDir,%A_ScriptDir%\HB Bitmap Maker Folder FileCreateDir,%A_ScriptDir%\HB Bitmap Maker Folder\Saved PNGs FileCreateDir,%A_ScriptDir%\HB Bitmap Maker Folder\Saved Bitmaps Data FileCreateDir,%A_ScriptDir%\HB Bitmap Maker Folder\Saved Bitmaps Functions } SetWorkingDir,%A_ScriptDir%\HB Bitmap Maker Folder\Saved Bitmaps Data global Saved_Bitmap_List Load_Saved_Bitmap_List() ;~ global Default_Values:={Default_Bitmap_X:320,Default_Bitmap_Y:30,Default_Bitmap_W:200,Default_Bitmap_H:200,Default_Bitmap_Smoothing:4,Default_Element_W:50,Default_Element_H:50,Default_Element_X:10,Default_Element_Y:10,Default_Element_X2:20,Default_Element_Y2:20,Default_Element_X3:30,Default_Element_Y3:30,Default_Element_X4:40,Default_Element_Y4:40,Default_Element_Alpha:"FF",Default_Element_Color:"FF0000",Default_Element_Alpha2:"FF",Default_Element_Color2:"00FF00",Default_Element_Hatch:39,Default_Element_Radius:5,Default_Element_Thickness:3,Default_Element_Start_Angle:0,Default_Element_End_Angle:90,Default_Element_Text:"Hellbent",Default_Element_Font:"Segoe UI",Default_Element_Options:"s16 Center vCenter Bold Underline",Default_Element_Hidden:0,Default_Element_Brush_Type:1,Default_Element_Polygon_List:"100,50|150,100|50,100|",Default_Element_Lines_List:"100,50|150,100|50,100|100,50|",Default_Element_Line_Brush_X1:0,Default_Element_Line_Brush_Y1:0,Default_Element_Line_Brush_X2:100,Default_Element_Line_Brush_Y2:100,Default_Element_Line_Brush_Wrap_Mode:1,Default_Element_Grade_Brush_X:0,Default_Element_Grade_Brush_Y:0,Default_Element_Grade_Brush_W:100,Default_Element_Grade_Brush_H:100,Default_Element_Grade_Brush_Wrap_Mode:1,Default_Element_Grade_Brush_LinearGradientMode:1} global Default_Values:={Default_Bitmap_X:320,Default_Bitmap_Y:30,Default_Bitmap_W:200,Default_Bitmap_H:200,Default_Bitmap_Smoothing:4,Default_Element_W:50,Default_Element_H:50,Default_Element_X:10,Default_Element_Y:10,Default_Element_X2:20,Default_Element_Y2:20,Default_Element_X3:30,Default_Element_Y3:30,Default_Element_X4:40,Default_Element_Y4:40,Default_Element_Alpha:"FF",Default_Element_Color:"FF0000",Default_Element_Alpha2:"FF",Default_Element_Color2:"00FF00",Default_Element_Hatch:39,Default_Element_Radius:5,Default_Element_Thickness:3,Default_Element_Start_Angle:0,Default_Element_End_Angle:90,Default_Element_Text:"Hellbent",Default_Element_Font:"Segoe UI",Default_Element_Options:"s16 Center vCenter Bold Underline",Default_Element_Hidden:0,Default_Element_Brush_Type:1,Default_Element_Polygon_List:"100,50|150,100|50,100|",Default_Element_Lines_List:"100,50|150,100|50,100|100,50|",Default_Element_Line_Brush_X1:0,Default_Element_Line_Brush_Y1:0,Default_Element_Line_Brush_X2:100,Default_Element_Line_Brush_Y2:100,Default_Element_Line_Brush_Wrap_Mode:1,Default_Element_Grade_Brush_X:0,Default_Element_Grade_Brush_Y:0,Default_Element_Grade_Brush_W:100,Default_Element_Grade_Brush_H:100,Default_Element_Grade_Brush_Wrap_Mode:1,Default_Element_Grade_Brush_LinearGradientMode:1} IfNotExist, %A_ScriptDir%\HB Bitmap Maker Folder\Default Values.ini { for k, v in Default_Values IniWrite,% v,%A_ScriptDir%\HB Bitmap Maker Folder\Default Values.ini,Defaults,% k } for k, v in Default_Values { IniRead,tttt,%A_ScriptDir%\HB Bitmap Maker Folder\Default Values.ini,Defaults,% k Default_Values[k]:=tttt } global Default_Bitmap_X,Default_Bitmap_Y,Default_Bitmap_W,Default_Bitmap_H,Default_Bitmap_Smoothing,Default_Element_W,Default_Element_H,Default_Element_X,Default_Element_Y,Default_Element_X2,Default_Element_Y2,Default_Element_X3,Default_Element_Y3,Default_Element_X4,Default_Element_Y4,Default_Element_Alpha,Default_Element_Color,Default_Element_Alpha2,Default_Element_Color2,Default_Element_Hatch,Default_Element_Radius,Default_Element_Thickness,Default_Element_Start_Angle,Default_Element_End_Angle,Default_Element_Text,Default_Element_Font,Default_Element_Options,Default_Element_Hidden,Default_Element_Brush_Type,Default_Element_Polygon_List,Default_Element_Lines_List,Default_Element_Line_Brush_X1,Default_Element_Line_Brush_Y1,Default_Element_Line_Brush_X2,Default_Element_Line_Brush_Y2,Default_Element_Line_Brush_Wrap_Mode,Default_Element_Grade_Brush_X,Default_Element_Grade_Brush_Y,Default_Element_Grade_Brush_W,Default_Element_Grade_Brush_H,Default_Element_Grade_Brush_Wrap_Mode,Default_Element_Grade_Brush_LinearGradientMode ;~ global Element_Key_List:= ["Type","X","Y","W","H","X2","Y2","X3","Y3","X4","Y4","Alpha","Color","Alpha2","Color2","Thickness","Radius","Hatch","Notes","Text","Options","Font","Brush_Type","Hidden","Line_Brush_X1","Line_Brush_Y1","Line_Brush_X2","Line_Brush_Y2","Line_Brush_Wrap_Mode","Grade_Brush_X","Grade_Brush_Y","Grade_Brush_W","Grade_Brush_H","Grade_Brush_LinearGradientMode","Grade_Brush_Wrap_Mode","Start_Angle","End_Angle","Polygon_list","Lines_List"] global Element_Key_List:= ["SourceWidth","SourceHeight","SourceX","SourceY","SourceW","SourceH","Path","Type","X","Y","W","H","X2","Y2","X3","Y3","X4","Y4","Alpha","Color","Alpha2","Color2","Thickness","Radius","Hatch","Notes","Text","Options","Font","Brush_Type","Hidden","Line_Brush_X1","Line_Brush_Y1","Line_Brush_X2","Line_Brush_Y2","Line_Brush_Wrap_Mode","Grade_Brush_X","Grade_Brush_Y","Grade_Brush_W","Grade_Brush_H","Grade_Brush_LinearGradientMode","Grade_Brush_Wrap_Mode","Start_Angle","End_Angle","Polygon_list","Lines_List"] global Windows:= New Main_Window() global Selected_New_Element:="Fill_Rectangle",BitmapBackgroundColor global Current_Elements,Active_Element global New_Bitmap_Name,New_Bitmap_X,New_Bitmap_Y,New_Bitmap_W,New_Bitmap_H,New_Bitmap_Smoothing,New_Bitmap_Raster global Bitmap_Array:=[] global Active_Bitmaps_List global Active_Bitmap:=1 global Element_Type_List:="Fill_Rectangle||Fill_Rounded_Rectangle|Fill_Circle|Fill_Polygon|Fill_Pie|Draw_Rectangle|Draw_Rounded_Rectangle|Draw_Circle|Draw_Line|Draw_Lines|Draw_Bezier|Draw_Arc|Draw_Pie|Text|Add_Picture" ;|Fill_Region|Fill_Path ;以下是汉化用的代码-------------------------------------------------- global 汉化_Element_Type_List:=[] 汉化_Element_Type_List[1]:={"矩形-填充":"Fill_Rectangle" , "圆角矩形-填充":"Fill_Rounded_Rectangle" , "圆-填充":"Fill_Circle" , "多边形-填充":"Fill_Polygon" , "饼形-填充":"Fill_Pie" , "矩形":"Draw_Rectangle" , "圆角矩形":"Draw_Rounded_Rectangle" , "圆":"Draw_Circle" , "线":"Draw_Line" , "多线段":"Draw_Lines" , "曲线":"Draw_Bezier" , "弧线":"Draw_Arc" , "饼形":"Draw_Pie" , "文字":"Text" , "添加图片":"Add_Picture"} Element_Type_List:="" For k,v in 汉化_Element_Type_List[1] { 汉化_Element_Type_List[2, v] := k Element_Type_List .=k (A_Index=1?"||":"|") } ;-------------------------------------------------- global Bitmap_Name_Counter:=1 global Auto_Draw:=1 global Element_Window:=New Element_Windows() global Constructor:=New Element_Window_Constructor() global Brush_Type:=1 global Element_Read_Keys global Name_To_Save_Files global Unlock_Delete_Button:=0 global Bitmap_Info_Control_Panel:=New Bitmap_Info_Control_Panel() global Save_Progress:=0 global Loading := 0 return GuiClose: ;~ GuiContextMenu: ExitApp Load_Saved_Bitmap_List(){ Saved_Bitmap_List:="" ;~ Loop, %A_ScriptDir%\HB Bitmap Maker Folder\Saved Bitmaps Data\*.* Loop, %A_ScriptDir%\HB Bitmap Maker Folder\Saved Bitmaps Data\*.ini { tep:=StrSplit(A_LoopFileName,".") if(A_Index=1) Saved_Bitmap_List.=tep[1] "||" else Saved_Bitmap_List.=tep[1] "|" } GuiControl,7:,List_Of_Existing_Saves,| GuiControl,7:,List_Of_Existing_Saves,% Saved_Bitmap_List GuiControl,6:,List_Of_Saved_Bitmaps,| GuiControl,6:,List_Of_Saved_Bitmaps,% Saved_Bitmap_List } Clip_Bitmap(){ GuiControlGet,List_Of_Saved_Bitmaps,6:,List_Of_Saved_Bitmaps FileRead,Clipboard,%A_ScriptDir%\HB Bitmap Maker Folder\Saved Bitmaps Functions\%List_Of_Saved_Bitmaps%.txt Loop 2 SoundBeep,500 TrayTip,,Done } Set_Auto_Draw(){ Auto_Draw:=!Auto_Draw } Test_Load(){ GuiControlGet,List_Of_Saved_Bitmaps,6:,List_Of_Saved_Bitmaps if(!List_Of_Saved_Bitmaps) return lBM:={} IniRead,tttt,%List_Of_Saved_Bitmaps%.ini,Bitmap Properties,X lBM.X:=tttt IniRead,tttt,%List_Of_Saved_Bitmaps%.ini,Bitmap Properties,Y lBM.Y:=tttt IniRead,tttt,%List_Of_Saved_Bitmaps%.ini,Bitmap Properties,W lBM.W:=tttt IniRead,tttt,%List_Of_Saved_Bitmaps%.ini,Bitmap Properties,H lBM.H:=tttt IniRead,tttt,%List_Of_Saved_Bitmaps%.ini,Bitmap Properties,Name lBM.Name:=tttt IniRead,tttt,%List_Of_Saved_Bitmaps%.ini,Bitmap Properties,Smoothing lBM.Smoothing:=tttt IniRead,tttt,%List_Of_Saved_Bitmaps%.ini,Bitmap Properties,Number Of Elements lBM.Number_Of_Elements:=tttt c_ele:=1 lBM.temp_Element:=[] gui,1:+OwnDialogs Loop,% lBM.Number_Of_Elements { lBM.temp_Element[A_Index]:={} Loop,% Element_Key_List.Length() { IniRead,tttt,%List_Of_Saved_Bitmaps%.ini,Bitmap Element %c_ele%,% Element_Key_List[A_Index] LBM.temp_Element[c_ele][Element_Key_List[A_Index]]:=tttt } c_ele++ } Load_Bitmap(lbm) } Save_Code(){ Gui,7:Submit,NoHide if(Bitmap_Array[Active_Bitmap]&&Name_To_Save_Files){ Bitmap_Array[Active_Bitmap].Create_BitMap(1) loop, % Bitmap_Array[Active_Bitmap].Bitmap_Elements.Length(){ Bitmap_Array[Active_Bitmap][Bitmap_Array[Active_Bitmap].Bitmap_Elements[A_Index].Type](A_Index,1) } temp:="`n`tGdip_DeleteGraphics( G )`n`treturn pBitmap`n}" FileAppend,%Temp%,%A_ScriptDir%\HB Bitmap Maker Folder\Saved Bitmaps Functions\%Name_To_Save_Files%.txt ;Save Bitmap data file ;------------------------------------------------------------ FileDelete,%Name_To_Save_Files%.ini IniWrite,% Bitmap_Array[Active_Bitmap].X,%Name_To_Save_Files%.ini,Bitmap Properties,X IniWrite,% Bitmap_Array[Active_Bitmap].Y,%Name_To_Save_Files%.ini,Bitmap Properties,Y IniWrite,% Bitmap_Array[Active_Bitmap].W,%Name_To_Save_Files%.ini,Bitmap Properties,W IniWrite,% Bitmap_Array[Active_Bitmap].H,%Name_To_Save_Files%.ini,Bitmap Properties,H IniWrite,% Bitmap_Array[Active_Bitmap].Name,%Name_To_Save_Files%.ini,Bitmap Properties,Name IniWrite,% Bitmap_Array[Active_Bitmap].Smoothing,%Name_To_Save_Files%.ini,Bitmap Properties,Smoothing IniWrite,% Bitmap_Array[Active_Bitmap].Bitmap_Elements.Length(),%Name_To_Save_Files%.ini,Bitmap Properties,Number Of Elements c_ele:=1 Loop,% Bitmap_Array[Active_Bitmap].Bitmap_Elements.Length() { For, k , v in Bitmap_Array[Active_Bitmap].Bitmap_Elements[A_Index] IniWrite,% v,%Name_To_Save_Files%.ini,Bitmap Element %c_ele%,% k c_ele++ GuiControl,% "7: +Range0-" Bitmap_Array[Active_Bitmap].Bitmap_Elements.Length() ,Save_Progress GuiControl,7:,Save_Progress,% c_ele } } Load_Saved_Bitmap_List() loop 2 SoundBeep,500 TrayTip,,Done } Save_Png(){ Gui,7:Submit,NoHide if(Bitmap_Array[Active_Bitmap]&&Name_To_Save_Files) Gdip_SaveBitmapToFile( Bitmap_Array[Active_Bitmap].Bitmap , A_ScriptDir "\HB Bitmap Maker Folder\Saved PNGs\" Name_To_Save_Files ".PNG" , 100 ) SoundBeep,700 TrayTip,,Done } Save_Defaults(){ For k, v in Default_Values IniWrite,% v,%A_ScriptDir%\HB Bitmap Maker Folder\Default Values.ini,Defaults,% k Loop 2 SoundBeep,600 TrayTip,,Done } Add_New_Element( path := "" ){ local out := "" GuiControlGet,Selected_New_Element,1:,Selected_New_Element ;汉化增加的代码-------------------------------------------- Selected_New_Element := 汉化_Element_Type_List[1, Selected_New_Element] ;---------------------------------------------------------- if( Selected_New_Element = "Add_Picture" ){ Gui, 1:+OwnDialogs ;~ ToolTip, % "here`n" path if( !Loading ){ FileSelectFile, out ,, c:\Pictures\*.Png }else{ ;out := Bitmap_Array[Active_Bitmap].Path ;~ ToolTip, % "here`n" path out := path } if( !Out ) return } Bitmap_Array[Active_Bitmap].BitMap_Elements.Push(New Element(Selected_New_Element , out )) Update_Element_List() Active_Element:=Bitmap_Array[Active_Bitmap].BitMap_Elements.Length() if(loading){ Bitmap_Array[Active_Bitmap].BitMap_Elements[Active_Element ].PicBitmap := Gdip_CreateBitmapFromFile( Path ) } ;~ ToolTip, % "here`nPath: " path "`nPath2: " Bitmap_Array[Active_Bitmap].BitMap_Elements[Active_Element ].PicBitmap Element_Window[Selected_New_Element](Bitmap_Array[Active_Bitmap].BitMap_Elements[Active_Element]) GuiControl,8:Choose,Current_Elements,% Active_Element if(Auto_Draw){ SetTimer,Force_Draw,-10 } } Clone_Element(){ if(Bitmap_Array[Active_Bitmap].BitMap_Elements.Length()&&Active_Element){ Bitmap_Array[Active_Bitmap].BitMap_Elements.Push(New Element(Selected_New_Element)) For,k,v in Element_Key_List Bitmap_Array[Active_Bitmap].BitMap_Elements[Bitmap_Array[Active_Bitmap].BitMap_Elements.Length()][v]:=Bitmap_Array[Active_Bitmap].BitMap_Elements[Active_Element][v] Active_Element:=Bitmap_Array[Active_Bitmap].BitMap_Elements.Length() Element_Window[Selected_New_Element](Bitmap_Array[Active_Bitmap].BitMap_Elements[Active_Element]) GuiControl,8:Choose,Current_Elements,% Active_Element Set_Bitmap_Controls() Update_Element_List() GuiControl,8:Choose,Current_Elements,% Active_Element if(Bitmap_Array[Active_Bitmap].BitMap_Elements[Active_Element].Brush_Type=3){ GuiControl,13:,Line,1 } if(Auto_Draw){ SetTimer,Force_Draw,-10 } } } Switch_Active_Element(){ Gui,8:Submit,NoHide ;123456 Active_Element:=Current_Elements Set_Bitmap_Controls() Element_Window[Bitmap_Array[Active_Bitmap].BitMap_Elements[Active_Element].Type](Bitmap_Array[Active_Bitmap].BitMap_Elements[Active_Element]) ;~ Set_Bitmap_Controls() } Update_Element_List(){ Element_List:="" ;汉化的代码------------------------------------------------------------- Loop,% Bitmap_Array[Active_Bitmap].BitMap_Elements.Length(){ if(Bitmap_Array[Active_Bitmap].BitMap_Elements[A_Index].Hidden=1&&Bitmap_Array[Active_Bitmap].BitMap_Elements[A_Index].Notes) Element_List.="( N H ) " 汉化_Element_Type_List[2, Bitmap_Array[Active_Bitmap].BitMap_Elements[A_Index].Type] "|" else if(Bitmap_Array[Active_Bitmap].BitMap_Elements[A_Index].Notes) Element_List.="( N ) " 汉化_Element_Type_List[2, Bitmap_Array[Active_Bitmap].BitMap_Elements[A_Index].Type] "|" else if(Bitmap_Array[Active_Bitmap].BitMap_Elements[A_Index].Hidden=1) Element_List.="( H ) " 汉化_Element_Type_List[2, Bitmap_Array[Active_Bitmap].BitMap_Elements[A_Index].Type] "|" else Element_List.=汉化_Element_Type_List[2, Bitmap_Array[Active_Bitmap].BitMap_Elements[A_Index].Type] "|" } ;---------------------------------------------------------------------- ; Loop,% Bitmap_Array[Active_Bitmap].BitMap_Elements.Length(){ ; if(Bitmap_Array[Active_Bitmap].BitMap_Elements[A_Index].Hidden=1&&Bitmap_Array[Active_Bitmap].BitMap_Elements[A_Index].Notes) ; Element_List.="( N H ) " Bitmap_Array[Active_Bitmap].BitMap_Elements[A_Index].Type "|" ; else if(Bitmap_Array[Active_Bitmap].BitMap_Elements[A_Index].Notes) ; Element_List.="( N ) " Bitmap_Array[Active_Bitmap].BitMap_Elements[A_Index].Type "|" ; else if(Bitmap_Array[Active_Bitmap].BitMap_Elements[A_Index].Hidden=1) ; Element_List.="( H ) " Bitmap_Array[Active_Bitmap].BitMap_Elements[A_Index].Type "|" ; else ; Element_List.=Bitmap_Array[Active_Bitmap].BitMap_Elements[A_Index].Type "|" ; } GuiControl,8:,Current_Elements,| GuiControl,8:,Current_Elements,% Element_List } ReOrder_Elements(){ if(Active_Element){ if(A_GuiControl="ReOrder_Up"&&Active_Element!=1){ tempElement:=Bitmap_Array[Active_Bitmap].BitMap_Elements[Active_Element] Bitmap_Array[Active_Bitmap].BitMap_Elements.RemoveAt(Active_Element) Bitmap_Array[Active_Bitmap].BitMap_Elements.InsertAt(Active_Element-1,tempElement) Update_Element_List() GuiControl,8:Choose,Current_Elements,% Active_Element-1 Switch_Active_Element() }else if(A_GuiControl="ReOrder_Down"&&Active_Element!=Bitmap_Array[Active_Bitmap].BitMap_Elements.Length()){ tempElement:=Bitmap_Array[Active_Bitmap].BitMap_Elements[Active_Element] Bitmap_Array[Active_Bitmap].BitMap_Elements.RemoveAt(Active_Element) Bitmap_Array[Active_Bitmap].BitMap_Elements.InsertAt(Active_Element+1,tempElement) Update_Element_List() GuiControl,8:Choose,Current_Elements,% Active_Element+1 Switch_Active_Element() } } if(Auto_Draw){ SetTimer,Force_Draw,-10 } } Remove_Element(){ if(Active_Element){ Bitmap_Array[Active_Bitmap].BitMap_Elements.RemoveAt(Active_Element) Update_Element_List() if(Bitmap_Array[Active_Bitmap].BitMap_Elements.Length()){ (Active_Element != 1) ? (Active_Element-=1) GuiControl,8:Choose,Current_Elements,% Active_Element Element_Window[Bitmap_Array[Active_Bitmap].BitMap_Elements[Active_Element].Type](Bitmap_Array[Active_Bitmap].BitMap_Elements[Active_Element]) }else { Active_Element:="" Gui,13:Destroy Gui,14:Destroy Gui,15:Destroy } } if(Auto_Draw){ SetTimer,Force_Draw,-10 } } Load_Bitmap(lBM){ Loading := 1 Bitmap_Name_Counter++ Gui,5:Submit,NoHide Bitmap_Array.Push(New Bitmap_Class(lBM.X,lBM.Y,lBM.W,lBM.H,lBM.Smoothing,New_Bitmap_Name,New_Bitmap_Raster)) GuiControl,5:,New_Bitmap_Name,% Bitmap_Name_Counter Active_Bitmap:=Bitmap_Array.Length() Add_Bitmaps_To_Bitmaps_List() GuiControl,1:Choose,Active_Bitmaps_List,% Active_Bitmap Loop,% Bitmap_Array.Length() Bitmap_Array[A_Index].move() if(Bitmap_Array.Length()=1){ GuiControl,1:,Selected_New_Element,| GuiControl,1:,Selected_New_Element,% Element_Type_List } Loop, % lbm.temp_Element.Length() { ;~ SoundBeep, 500 ;~ ToolTip, % lbm.temp_Element[A_Index].Path Add_New_Element(lbm.temp_Element[A_Index].Path) indext := A_Index For k, v in lbm.temp_Element[A_Index] Bitmap_Array[Bitmap_Array.Length()].BitMap_Elements[indext][k]:=v } GuiControl,7:,Display_Current_Bitmap_Name ,`n已经激活的位图 : %Active_Bitmap% ;`nActive Bitmap : %Active_Bitmap% Set_Bitmap_Controls() Update_Element_List() Loading := 0 } Set_Bitmap_Controls(){ Bitmap_Info_Control_Panel.Create_Bitmap_Control_Panel() Bitmap_Info_Control_Panel.Bitmap_Position_Controls() Bitmap_Info_Control_Panel.Bitmap_Position_Details(Bitmap_Array[Active_Bitmap]) Bitmap_Info_Control_Panel.Bitmap_Zoom(Bitmap_Array[Active_Bitmap]) Bitmap_Info_Control_Panel.Bitmap_Lock() Bitmap_Info_Control_Panel.Bitmap_Smoothing() Bitmap_Info_Control_Panel.Show_Bitmap_Control_Panel() } Add_New_Bitmap(){ Bitmap_Name_Counter++ Gui,5:Submit,NoHide Bitmap_Array.Push(New Bitmap_Class(New_Bitmap_X,New_Bitmap_Y,New_Bitmap_W,New_Bitmap_H,New_Bitmap_Smoothing,New_Bitmap_Name,New_Bitmap_Raster)) GuiControl,5:,New_Bitmap_Name,% Bitmap_Name_Counter if(!Active_Bitmap) Active_Bitmap:=1 Add_Bitmaps_To_Bitmaps_List() GuiControl,1:Choose,Active_Bitmaps_List,% Active_Bitmap GuiControl,7:,Display_Current_Bitmap_Name ,`n已经激活的位图 : %Active_Bitmap% ;`nActive Bitmap : %Active_Bitmap% Loop,% Bitmap_Array.Length() Bitmap_Array[A_Index].move() if(Bitmap_Array.Length()=1){ GuiControl,1:,Selected_New_Element,| GuiControl,1:,Selected_New_Element,% Element_Type_List } Set_Bitmap_Controls() } Set_Active_Bitmap(){ GuiControlGet,Active_Bitmap,1:,Active_Bitmaps_List GuiControl,7:,Display_Current_Bitmap_Name ,`n已经激活的位图 : %Active_Bitmap% ;`nActive Bitmap : %Active_Bitmap% Update_Element_List() if(Bitmap_Array[Active_Bitmap].BitMap_Elements.Length()){ (Active_Element != 1) ? (Active_Element-=1) GuiControl,8:Choose,Current_Elements,% Active_Element Element_Window[Bitmap_Array[Active_Bitmap].BitMap_Elements[Active_Element].Type](Bitmap_Array[Active_Bitmap].BitMap_Elements[Active_Element]) ;~ Set_Bitmap_Controls() }else { Active_Element:="" Gui,13:Destroy } if(Bitmap_Array.Length()) Set_Bitmap_Controls() } Remove_Active_Bitmap(){ if(Bitmap_Array.Length()>0){ GuiControlGet,Active_Bitmap,1:,Active_Bitmaps_List GuiControl,4:+Redraw,% Bitmap_Array[Active_Bitmap].Name GuiControl,4:Hide,% Bitmap_Array[Active_Bitmap].Name Bitmap_Array.RemoveAt(Active_Bitmap) (Active_Bitmap>1)?(Active_BitMap-=1) Add_Bitmaps_To_Bitmaps_List() GuiControl,1:Choose,Active_Bitmaps_List,% Active_Bitmap Set_Active_Bitmap() if(Bitmap_Array.Length()<1) { GuiControl,1:,Selected_New_Element,| GuiControl,8:,Current_Elements,| Gui,13:Destroy Gui,14:Destroy Gui,15:Destroy Gui,17:Destroy } } } ;&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& ; Element_Windows ;********************************************************************************************** Class Element_Windows { Add_Picture( obj ){ Constructor.Window_Settings() Constructor.Hide_Element_Line(obj) Constructor.Notes_Line(obj) ;~ Constructor.Rectangle_Lines(obj) Constructor.Add_Picture_Lines(obj) ;~ Constructor.Brush_Options_Lines(obj) ;~ Constructor.Create_Brush_Window(obj) Constructor.Fine_Control_Window(obj) Constructor.Positioning_Buttons_X_Y() Constructor.Positioning_Buttons_W_H() Constructor.Show_Window() } Fill_Rectangle(Obj){ Constructor.Window_Settings() Constructor.Hide_Element_Line(obj) Constructor.Notes_Line(obj) Constructor.Rectangle_Lines(obj) Constructor.Brush_Options_Lines(obj) Constructor.Create_Brush_Window(obj) Constructor.Fine_Control_Window(obj) Constructor.Positioning_Buttons_X_Y() Constructor.Positioning_Buttons_W_H() Constructor.Show_Window() } Fill_Rounded_Rectangle(obj){ Constructor.Window_Settings() Constructor.Hide_Element_Line(obj) Constructor.Notes_Line(obj) Constructor.Rounded_Rectangle_Lines(obj) Constructor.Brush_Options_Lines(obj) Constructor.Create_Brush_Window(obj) Constructor.Fine_Control_Window(obj) Constructor.Positioning_Buttons_X_Y() Constructor.Positioning_Buttons_W_H() Constructor.Show_Window() } Fill_Circle(obj){ Constructor.Window_Settings() Constructor.Hide_Element_Line(obj) Constructor.Notes_Line(obj) Constructor.Rectangle_Lines(obj) Constructor.Brush_Options_Lines(obj) Constructor.Create_Brush_Window(obj) Constructor.Fine_Control_Window(obj) Constructor.Positioning_Buttons_X_Y() Constructor.Positioning_Buttons_W_H() Constructor.Show_Window() } Fill_Pie(obj){ Constructor.Window_Settings() Constructor.Hide_Element_Line(obj) Constructor.Notes_Line(obj) Constructor.Rectangle_Lines(obj) Constructor.Angle_Lines(obj) Constructor.Brush_Options_Lines(obj) Constructor.Create_Brush_Window(obj) Constructor.Fine_Control_Window(obj) Constructor.Positioning_Buttons_X_Y() Constructor.Positioning_Buttons_W_H() Constructor.Show_Window() } Fill_Polygon(obj){ Constructor.Window_Settings() Constructor.Hide_Element_Line(obj) Constructor.Notes_Line(obj) Constructor.Polygon_Lines(obj) Constructor.Brush_Options_Lines(obj) Constructor.Create_Brush_Window(obj) Constructor.Fine_Control_Window(obj) Constructor.Position_Buttons_Polygon(obj) Constructor.Show_Window() } Draw_Rectangle(Obj){ Constructor.Window_Settings() Constructor.Hide_Element_Line(obj) Constructor.Notes_Line(obj) Constructor.Rectangle_Lines(obj) Constructor.Line_Thickness_Lines(obj) Constructor.Brush_Options_Lines(obj) Constructor.Create_Brush_Window(obj) Constructor.Fine_Control_Window(obj) Constructor.Positioning_Buttons_X_Y() Constructor.Positioning_Buttons_W_H() Constructor.Show_Window() } Draw_Rounded_Rectangle(Obj){ Constructor.Window_Settings() Constructor.Hide_Element_Line(obj) Constructor.Notes_Line(obj) Constructor.Rounded_Rectangle_Lines(obj) Constructor.Line_Thickness_Lines(obj) Constructor.Brush_Options_Lines(obj) Constructor.Create_Brush_Window(obj) Constructor.Fine_Control_Window(obj) Constructor.Positioning_Buttons_X_Y() Constructor.Positioning_Buttons_W_H() Constructor.Show_Window() } Draw_Circle(obj){ Constructor.Window_Settings() Constructor.Hide_Element_Line(obj) Constructor.Notes_Line(obj) Constructor.Rectangle_Lines(obj) Constructor.Line_Thickness_Lines(obj) Constructor.Brush_Options_Lines(obj) Constructor.Create_Brush_Window(obj) Constructor.Fine_Control_Window(obj) Constructor.Positioning_Buttons_X_Y() Constructor.Positioning_Buttons_W_H() Constructor.Show_Window() } Draw_Line(obj){ Constructor.Window_Settings() Constructor.Hide_Element_Line(obj) Constructor.Notes_Line(obj) Constructor.Two_Points_Lines(obj) Constructor.Line_Thickness_Lines(obj) Constructor.Brush_Options_Lines(obj) Constructor.Create_Brush_Window(obj) Constructor.Fine_Control_Window(obj) Constructor.Positioning_Buttons_X_Y() Constructor.Positioning_Buttons_X2_Y2() Constructor.Show_Window() } Draw_Lines(obj){ Constructor.Window_Settings() Constructor.Hide_Element_Line(obj) Constructor.Notes_Line(obj) Constructor.Line_Thickness_Lines(obj) Constructor.Lines_Lines(obj) Constructor.Brush_Options_Lines(obj) Constructor.Create_Brush_Window(obj) Constructor.Fine_Control_Window(obj) Constructor.Position_Buttons_Polygon(obj) Constructor.Show_Window() } Draw_Arc(obj){ Constructor.Window_Settings() Constructor.Hide_Element_Line(obj) Constructor.Notes_Line(obj) Constructor.Rectangle_Lines(obj) Constructor.Angle_Lines(obj) Constructor.Line_Thickness_Lines(obj) Constructor.Brush_Options_Lines(obj) Constructor.Create_Brush_Window(obj) Constructor.Fine_Control_Window(obj) Constructor.Positioning_Buttons_X_Y() Constructor.Positioning_Buttons_W_H() Constructor.Show_Window() } Draw_Pie(obj){ Constructor.Window_Settings() Constructor.Hide_Element_Line(obj) Constructor.Notes_Line(obj) Constructor.Rectangle_Lines(obj) Constructor.Angle_Lines(obj) Constructor.Line_Thickness_Lines(obj) Constructor.Brush_Options_Lines(obj) Constructor.Create_Brush_Window(obj) Constructor.Fine_Control_Window(obj) Constructor.Positioning_Buttons_X_Y() Constructor.Positioning_Buttons_W_H() Constructor.Show_Window() } Draw_Bezier(obj){ Constructor.Window_Settings() Constructor.Hide_Element_Line(obj) Constructor.Notes_Line(obj) Constructor.Bezier_Lines(obj) Constructor.Line_Thickness_Lines(obj) Constructor.Brush_Options_Lines(obj) Constructor.Create_Brush_Window(obj) Constructor.Fine_Control_Window(obj) Constructor.Positioning_Buttons_X_Y() Constructor.Positioning_Buttons_X2_Y2() Constructor.Positioning_Buttons_X3_Y3_X4_Y4() Constructor.Show_Window() } Text(obj){ Constructor.Window_Settings() Constructor.Hide_Element_Line(obj) Constructor.Notes_Line(obj) Constructor.Rectangle_Lines(obj) Constructor.Text_Lines(obj) Constructor.Brush_Options_Lines(obj) Constructor.Create_Brush_Window(obj) Constructor.Fine_Control_Window(obj) Constructor.Positioning_Buttons_X_Y() Constructor.Positioning_Buttons_W_H() Constructor.Show_Window() } } ;********************************************************************************************** ; Element_Window_Constructor ;********************************************************************************************** Class Element_Window_Constructor { Window_Settings(){ Gui,13:Destroy Gui,13:+Parent12 -Caption -DPIScale Gui,13:Color,333333,333333 Gui,13:Font,cWhite s8 ,Segoe Ui } Show_Window(){ Gui,13:Show,x0 y0 w290 h380 , } Notes_Line(obj){ global Gui,13:Add,Text,x10 y+10 w40 r1,注释 : ;Notes : Gui,13:Add,Edit,x+10 yp-2 w220 r1 -E0x200 +Border vNotes gSubmit_13 ,% obj.Notes } Rectangle_Lines(obj){ global Gui,13:Add,Text,x10 y+10 w15 r1 ,X : Gui,13:Add,Edit,x+5 yp-4 w40 r1 Center -E0x200 +Border vX_Position gSubmit_13,% obj.X Gui,13:Add,Text,x+5 yp+4 w15 r1 ,Y : Gui,13:Add,Edit,x+5 yp-4 w40 r1 Center -E0x200 +Border vY_Position gSubmit_13,% obj.Y Gui,13:Add,Text,x+5 yp+4 w20 r1 ,W : Gui,13:Add,Edit,x+5 yp-4 w40 r1 Center Number -E0x200 +Border vW_Position gSubmit_13,% obj.W Gui,13:Add,Text,x+5 yp+4 w20 r1 ,H : Gui,13:Add,Edit,x+5 yp-4 w40 r1 Center Number -E0x200 +Border vH_Position gSubmit_13,% obj.H } Add_Picture_Lines(obj){ global Gui,13:Add,Text,x10 y+10 w15 r1 ,X : Gui,13:Add,Edit,x+5 yp-4 w40 r1 Center -E0x200 +Border vX_Position gSubmit_13,% obj.X Gui,13:Add,Text,x+5 yp+4 w15 r1 ,Y : Gui,13:Add,Edit,x+5 yp-4 w40 r1 Center -E0x200 +Border vY_Position gSubmit_13,% obj.Y Gui,13:Add,Text,x+5 yp+4 w20 r1 ,W : Gui,13:Add,Edit,x+5 yp-4 w40 r1 Center Number -E0x200 +Border vW_Position gSubmit_13,% obj.W Gui,13:Add,Text,x+5 yp+4 w20 r1 ,H : Gui,13:Add,Edit,x+5 yp-4 w40 r1 Center Number -E0x200 +Border vH_Position gSubmit_13,% obj.H Gui,13:Add, text , x10 y+10 w20 r1 , % "SX: " Gui,13:Add, Edit , x+5 yp w50 r1 Center Number -E0x200 +Border vSx gSubmit_13, % obj.SourceX Gui,13:Add, text , x+10 w20 r1 , % "SY: " Gui,13:Add, Edit , x+5 w50 r1 Center Number -E0x200 +Border vSy gSubmit_13, % obj.SourceY Gui,13:Add, text , x10 w20 r1 , % "SW: " Gui,13:Add, Edit , x+5 w50 r1 Center Number -E0x200 +Border vSw gSubmit_13, % obj.SourceW Gui,13:Add, text , x+10 w20 r1 , % "SH: " Gui,13:Add, Edit , x+5 w50 r1 Center Number -E0x200 +Border vSh gSubmit_13, % obj.SourceH Gui,13:Add, Edit , x10 y+20 w270 r1 Center -E0x200 +Border ReadOnly, % obj.Path Gui,13:Add, text , x10 w60 r1 , % "Width:" Gui,13:Add, Edit , x+5 w50 r1 Center Number ReadOnly -E0x200 +Border , % obj.SourceWidth Gui,13:Add, text , x+20 w60 r1 , % "Height:" Gui,13:Add, Edit ,cAqua x+5 w50 r1 Center Number ReadOnly -E0x200 +Border , % obj.SourceHeight } Polygon_Lines(obj){ global Gui,13:Add,Text,x10 y+20 w60 r1 ,位置 : ;Positions : Gui,13:Add,Edit,x10 y+10 w270 r1 vPolygon_List gSubmit_13,% obj.Polygon_List Gui,13:Add,Button,x10 y+20 w80 h25 -Theme gAdd_New_Polygon_Point,添加点位 ; Add Point Gui,13:Add,Button,x+10 w80 h25 -Theme gClear_Points, 清除 ;Clear } Lines_Lines(obj){ global Gui,13:Add,Text,x10 y+10 w60 r1 ,位置 : ;Positions : Gui,13:Add,Edit,x10 y+5 w270 r1 vLines_List gSubmit_13,% obj.Lines_List Gui,13:Add,Button,x10 y+10 w80 h25 -Theme gAdd_New_Lines_Point,添加点位 ; Add Point Gui,13:Add,Button,x+10 w80 h25 -Theme gClear_Points, 清除 ;Clear } Rounded_Rectangle_Lines(obj){ global Gui,13:Add,Text,x10 y+15 w15 r1 ,X : Gui,13:Add,Edit,x+5 yp-4 w40 r1 Center -E0x200 +Border vX_Position gSubmit_13,% obj.X Gui,13:Add,Text,x+5 yp+4 w15 r1 ,Y : Gui,13:Add,Edit,x+5 yp-4 w40 r1 Center -E0x200 +Border vY_Position gSubmit_13,% obj.Y Gui,13:Add,Text,x+5 yp+4 w20 r1 ,W : Gui,13:Add,Edit,x+5 yp-4 w40 r1 Center Number -E0x200 +Border vW_Position gSubmit_13,% obj.W Gui,13:Add,Text,x+5 yp+4 w20 r1 ,H : Gui,13:Add,Edit,x+5 yp-4 w40 r1 Center Number -E0x200 +Border vH_Position gSubmit_13,% obj.H Gui,13:Add,Text,x10 y+12 w50 r1,半径 : ;Radius : Gui,13:Add,Edit,x+10 yp-4 w50 r1 Center -E0x200 +Border Uppercase vRadius gSubmit_13,% obj.Radius } Brush_Options_Lines(obj){ global Gui,13:Add,Radio,x10 y180 -Theme Group AltSubmit vBrush_Type gSubmit_Brush_Type,常规 ;Normal Gui,13:Add,Radio,x+10 yp -Theme gSubmit_Brush_Type,Hatch Gui,13:Add,Radio,x+10 yp -Theme gSubmit_Brush_Type,Lines Gui,13:Add,Radio,x+10 yp -Theme gSubmit_Brush_Type,Grade if(obj.Brush_Type=1) GuiControl,13:,Brush_Type,1 else if(obj.Brush_Type=2) GuiControl,13:,Hatch,1 else if(obj.Brush_Type=3) GuiControl,13:,Lines,1 else if(obj.Brush_Type=4) GuiControl,13:,Grade,1 } Hide_Element_Line(obj){ global if(obj.Hidden) Gui,13:Add,Checkbox,x10 y10 Checked vHide_Element gHide_Element,隐藏元素 ;Hide Element else Gui,13:Add,Checkbox,x10 y10 vHide_Element gHide_Element,隐藏元素 ;Hide Element } Line_Thickness_Lines(obj){ Gui,13:Add,Text,x10 y+10 w80 r1,Thickness : Gui,13:Add,Edit,x+10 yp-2 w40 r1 Center -E0x200 +Border vThickness gSubmit_13 ,% obj.Thickness } Two_Points_Lines(obj){ Gui,13:Add,Text,x10 y+15 w25 r1 ,X : Gui,13:Add,Edit,x+10 yp-4 w40 r1 Center -E0x200 +Border vX_Position gSubmit_13,% obj.X Gui,13:Add,Text,x+10 yp+4 w25 r1 ,Y : Gui,13:Add,Edit,x+10 yp-4 w40 r1 Center -E0x200 +Border vY_Position gSubmit_13,% obj.Y Gui,13:Add,Text,x10 y+15 w25 r1 ,X2 : Gui,13:Add,Edit,x+10 yp-4 w40 r1 Center Number -E0x200 +Border vX2_Position gSubmit_13,% obj.X2 Gui,13:Add,Text,x+10 yp+4 w25 r1 ,Y2 : Gui,13:Add,Edit,x+10 yp-4 w40 r1 Center Number -E0x200 +Border vY2_Position gSubmit_13,% obj.Y2 } Bezier_Lines(obj){ Gui,13:Add,Text,x5 y+10 w15 r1 ,X : Gui,13:Add,Edit,x+5 yp-4 w40 r1 Center -E0x200 +Border vX_Position gSubmit_13,% obj.X Gui,13:Add,Text,x+5 yp+4 w15 r1 ,Y : Gui,13:Add,Edit,x+5 yp-4 w40 r1 Center -E0x200 +Border vY_Position gSubmit_13,% obj.Y Gui,13:Add,Text,x+5 yp+4 w20 r1 ,X2 : Gui,13:Add,Edit,x+5 yp-4 w40 r1 Center -E0x200 +Border vX2_Position gSubmit_13,% obj.X2 Gui,13:Add,Text,x+5 yp+4 w20 r1 ,Y2 : Gui,13:Add,Edit,x+5 yp-4 w40 r1 Center -E0x200 +Border vY2_Position gSubmit_13,% obj.Y2 Gui,13:Add,Text,x5 y+10 w20 r1 ,X3 : Gui,13:Add,Edit,x+5 yp-4 w40 r1 Center -E0x200 +Border vX3_Position gSubmit_13,% obj.X3 Gui,13:Add,Text,x+5 yp+4 w20 r1 ,Y3 : Gui,13:Add,Edit,x+5 yp-4 w40 r1 Center -E0x200 +Border vY3_Position gSubmit_13,% obj.Y3 Gui,13:Add,Text,x+5 yp+4 w20 r1 ,X4 : Gui,13:Add,Edit,x+5 yp-4 w40 r1 Center -E0x200 +Border vX4_Position gSubmit_13,% obj.X4 Gui,13:Add,Text,x+5 yp+4 w20 r1 ,Y4 : Gui,13:Add,Edit,x+5 yp-4 w40 r1 Center -E0x200 +Border vY4_Position gSubmit_13,% obj.Y4 } Angle_Lines(obj){ Gui,13:Add,Text,x10 y+15 w70 r1 ,Start Angle : Gui,13:Add,Edit,x+10 yp-4 w40 r1 Center -E0x200 +Border vStart_Angle gSubmit_13,% obj.Start_Angle Gui,13:Add,Text,x+10 yp+4 w80 r1 ,Sweep Angle : Gui,13:Add,Edit,x+10 yp-4 w40 r1 Center -E0x200 +Border vEnd_Angle gSubmit_13,% obj.End_Angle } Text_Lines(obj){ Gui,13:Add,Text,x10 y+7 w40 r1,文字 : ;Text : Gui,13:Add,Edit,x+10 yp-2 w220 r1 -E0x200 +Border vText gSubmit_13 ,% obj.Text Gui,13:Add,Text,x10 y+7 w40 r1,选项 : ;Options : Gui,13:Add,Edit,x+10 yp-2 w220 r1 -E0x200 +Border vOptions gSubmit_13 ,% obj.Options Gui,13:Add,Text,x10 y+7 w40 r1,字体 : ;Font : Gui,13:Add,Edit,x+10 yp-2 w220 r1 -E0x200 +Border vFont gSubmit_13 ,% obj.Font } Create_Brush_Window(obj){ Gui,14:Destroy Gui,14:+AlwaysOnTop -Caption -DpiScale +Parent13 Gui,14:Color,333333,444444 Gui,14:Font,cWhite s8 ,Segoe Ui Gui,14:Show,x0 y200 w290 h200 if(obj.Brush_Type=1) This.Normal_Brush_Window(obj) else if(obj.Brush_Type=2) This.Hatch_Brush_Window(obj) else if(obj.Brush_Type=3) This.Line_Brush_Window(obj) else if(obj.Brush_Type=4) This.Grade_Brush_Window(obj) } Normal_Brush_Window(obj){ Gui,14:Add,Text,x5 y30 w40 r1 ,透明度 ;Alpha : Gui,14:Add,Edit,x+5 yp-4 w40 r1 Center Limit2 -E0x200 +Border vAlpha gSubmit_13,% obj.Alpha Gui,14:Add,Text,x+5 yp+4 w40 r1 ,颜色 ;Color : Gui,14:Add,Edit,x+5 yp-4 w60 r1 Center Limit6 -E0x200 +Border vColor gSubmit_13,% obj.Color Gui,14:Add,Button,x+10 yp w70 h20 -Theme gSet_Color_1,获取 ;Get Gui,14:Submit,NoHide } Hatch_Brush_Window(obj){ Gui,14:Add,Text,x5 y20 w40 r1 ,透明度 ;Alpha : Gui,14:Add,Edit,x+5 yp-4 w40 r1 Center Limit2 -E0x200 +Border vAlpha gSubmit_13,% obj.Alpha Gui,14:Add,Text,x+5 yp+4 w40 r1 ,颜色 ;Color : Gui,14:Add,Edit,x+5 yp-4 w60 r1 Center Limit6 -E0x200 +Border vColor gSubmit_13,% obj.Color Gui,14:Add,Button,x+10 yp w70 h20 -Theme gSet_Color_1,获取 ;Get Gui,14:Add,Text,x5 y+10 w40 r1 ,透明度 ;Alpha 2 : Gui,14:Add,Edit,x+5 yp-4 w40 r1 Center Limit2 -E0x200 +Border vAlpha2 gSubmit_13,% obj.Alpha2 Gui,14:Add,Text,x+5 yp+4 w40 r1 ,颜色 ;Color2 : Gui,14:Add,Edit,x+5 yp-4 w60 r1 Center Limit6 -E0x200 +Border vColor2 gSubmit_13,% obj.Color2 Gui,14:Add,Button,x+10 yp w70 h20 -Theme gSet_Color_2,获取 ;Get Gui,14:Add,Text,x5 y+10 w40 r1 ,Hatch : Gui,14:Add,Edit,x+5 yp-4 w40 r1 Center Limit2 -E0x200 +Border vHatch gSubmit_13,% obj.Hatch Gui,14:Submit,NoHide } Line_Brush_Window(obj){ Gui,14:Add,Text,x5 y10 w40 r1 ,透明度 ;Alpha : Gui,14:Add,Edit,x+5 yp-4 w40 r1 Center Limit2 -E0x200 +Border vAlpha gSubmit_13,% obj.Alpha Gui,14:Add,Text,x+5 yp+4 w40 r1 ,颜色 ;Color : Gui,14:Add,Edit,x+5 yp-4 w60 r1 Center Limit6 -E0x200 +Border vColor gSubmit_13,% obj.Color Gui,14:Add,Button,x+10 yp w70 h20 -Theme gSet_Color_1,获取 ;Get Gui,14:Add,Text,x5 y+10 w40 r1 ,透明度 ;Alpha 2 : Gui,14:Add,Edit,x+5 yp-4 w40 r1 Center Limit2 -E0x200 +Border vAlpha2 gSubmit_13,% obj.Alpha2 Gui,14:Add,Text,x+5 yp+4 w40 r1 ,颜色 ;Color2 : Gui,14:Add,Edit,x+5 yp-4 w60 r1 Center Limit6 -E0x200 +Border vColor2 gSubmit_13,% obj.Color2 Gui,14:Add,Button,x+10 yp w70 h20 -Theme gSet_Color_2,获取 ;Get Gui,14:Add,Text,x10 y+10 w25 r1 ,X1 : Gui,14:Add,Edit,x+10 yp-4 w40 r1 Center -E0x200 +Border vLine_Brush_X1 gSubmit_13,% obj.Line_Brush_X1 Gui,14:Add,Text,x+10 yp+4 w25 r1 ,Y1 : Gui,14:Add,Edit,x+10 yp-4 w40 r1 Center -E0x200 +Border vLine_Brush_Y1 gSubmit_13,% obj.Line_Brush_Y1 Gui,14:Add,Text,x10 y+10 w25 r1 ,X2 : Gui,14:Add,Edit,x+10 yp-4 w40 r1 Center -E0x200 +Border vLine_Brush_X2 gSubmit_13,% obj.Line_Brush_X2 Gui,14:Add,Text,x+10 yp+4 w25 r1 ,Y2 : Gui,14:Add,Edit,x+10 yp-4 w40 r1 Center -E0x200 +Border vLine_Brush_Y2 gSubmit_13,% obj.Line_Brush_Y2 Gui,14:Add,Button,x+40 yp w70 r1 -Theme gSet_LineBrush_Positions, Set Gui,14:Add,Text,x10 y+10 w65 r1 ,换行模式 : ;Wrap Mode : Gui,14:Add,Edit,x+10 yp-4 w40 r1 Center -E0x200 +Border vLine_Brush_Wrap_Mode gSubmit_13,% obj.Line_Brush_Wrap_Mode Gui,14:Submit,NoHide } Grade_Brush_Window(obj){ Gui,14:Add,Text,x5 y10 w40 r1 ,透明度 ;Alpha : Gui,14:Add,Edit,x+5 yp-4 w40 r1 Center Limit2 -E0x200 +Border vAlpha gSubmit_13,% obj.Alpha Gui,14:Add,Text,x+5 yp+4 w40 r1 ,颜色 ;Color : Gui,14:Add,Edit,x+5 yp-4 w60 r1 Center Limit6 -E0x200 +Border vColor gSubmit_13,% obj.Color Gui,14:Add,Button,x+10 yp w70 h20 -Theme gSet_Color_1,获取 ;Get Gui,14:Add,Text,x5 y+10 w40 r1 ,透明度 ;Alpha 2 : Gui,14:Add,Edit,x+5 yp-4 w40 r1 Center Limit2 -E0x200 +Border vAlpha2 gSubmit_13,% obj.Alpha2 Gui,14:Add,Text,x+5 yp+4 w40 r1 ,颜色 ;Color2 : Gui,14:Add,Edit,x+5 yp-4 w60 r1 Center Limit6 -E0x200 +Border vColor2 gSubmit_13,% obj.Color2 Gui,14:Add,Button,x+10 yp w70 h20 -Theme gSet_Color_2,获取 ;Get Gui,14:Add,Text,x10 y+10 w25 r1 ,X : Gui,14:Add,Edit,x+10 yp-4 w40 r1 Center -E0x200 +Border vGrade_Brush_X gSubmit_13,% obj.Grade_Brush_X Gui,14:Add,Text,x+10 yp+4 w25 r1 ,Y : Gui,14:Add,Edit,x+10 yp-4 w40 r1 Center -E0x200 +Border vGrade_Brush_Y gSubmit_13,% obj.Grade_Brush_Y Gui,14:Add,Text,x10 y+10 w25 r1 ,W : Gui,14:Add,Edit,x+10 yp-4 w40 r1 Center -E0x200 +Border vGrade_Brush_W gSubmit_13,% obj.Grade_Brush_W Gui,14:Add,Text,x+10 yp+4 w25 r1 ,H : Gui,14:Add,Edit,x+10 yp-4 w40 r1 Center -E0x200 +Border vGrade_Brush_H gSubmit_13,% obj.Grade_Brush_H Gui,14:Add,Button,x+40 yp w70 r1 -Theme gSet_GradeBrush_Positions, Set Gui,14:Add,Text,x5 y+10 w65 r1 ,换行模式 : ;Wrap Mode : Gui,14:Add,Edit,x+5 yp-4 w40 r1 Center -E0x200 +Border vGrade_Brush_Wrap_Mode gSubmit_13,% obj.Grade_Brush_Wrap_Mode Gui,14:Add,Text,x+10 yp+4 w110 r1 ,线性梯度模式 : ;LinearGradientMode : Gui,14:Add,Edit,x+5 yp-4 w40 r1 Center -E0x200 +Border vGrade_Brush_LinearGradientMode gSubmit_13,% obj.Grade_Brush_LinearGradientMode Gui,14:Submit,NoHide } Fine_Control_Window(obj){ Gui,15:Destroy Gui,15:+AlwaysOnTop -Caption -DpiScale +Parent11 Gui,15:Color,333333,444444 Gui,15:Font,cWhite s8 ,Segoe Ui Gui,15:Show,x0 y0 w290 h200 } Positioning_Buttons_X_Y(){ global Gui,15:Font,cWhite s8 , ;Segoe Ui Gui,15:Add,Button,x35 y10 w50 h25 -Theme vMove_Up gRePosition_Element,Y Up Gui,15:Add,Button,x5 y+5 w50 h25 -Theme vMove_Left gRePosition_Element,X Left Gui,15:Add,Button,x+10 yp w50 h25 -Theme vMove_Right gRePosition_Element,X Right Gui,15:Add,Button,x35 y+5 w50 h25 -Theme vMove_Down gRePosition_Element,Y Down } Positioning_Buttons_X2_Y2(){ global Gui,15:Font,cWhite s8 ,Segoe Ui Gui,15:Add,Button,x151 y10 w60 h25 -Theme vMove_Up2 gRePosition_Element,Y2 Up Gui,15:Add,Button,x123 y+5 w60 h25 -Theme vMove_Left2 gRePosition_Element,X2 Left Gui,15:Add,Button,x+6 yp w60 h25 -Theme vMove_Right2 gRePosition_Element,X2 Right Gui,15:Add,Button,x151 y+5 w60 h25 -Theme vMove_Down2 gRePosition_Element,Y2 Down } Positioning_Buttons_X3_Y3_X4_Y4(){ global Gui,15:Font,cWhite s8 , ;Segoe Ui Gui,15:Add,Button,x35 y110 w50 h25 -Theme vMove_Up3 gRePosition_Element,Y3 Gui,15:Add,Button,x5 y+5 w50 h25 -Theme vMove_Left3 gRePosition_Element,X3 Gui,15:Add,Button,x+10 yp w50 h25 -Theme vMove_Right3 gRePosition_Element,X3 Gui,15:Add,Button,x35 y+5 w50 h25 -Theme vMove_Down3 gRePosition_Element,Y3 Gui,15:Add,Button,x151 y110 w60 h25 -Theme vMove_Up4 gRePosition_Element,Y4 Gui,15:Add,Button,x123 y+5 w60 h25 -Theme vMove_Left4 gRePosition_Element,X4 Gui,15:Add,Button,x+6 yp w60 h25 -Theme vMove_Right4 gRePosition_Element,X4 Gui,15:Add,Button,x151 y+5 w60 h25 -Theme vMove_Down4 gRePosition_Element,Y4 } Positioning_Buttons_W_H(){ global Gui,15:Font,cWhite s8 ,Segoe Ui Gui,15:Add,Button,x160 y10 w50 h25 -Theme vMinus_Height gReSize_Element,-H Gui,15:Add,Button,x130 y+5 w50 h25 -Theme vMinus_Width gReSize_Element,-W Gui,15:Add,Button,x+10 yp w50 h25 -Theme vPlus_Width gReSize_Element,+W Gui,15:Add,Button,x160 y+5 w50 h25 -Theme vPlus_Height gReSize_Element,+H } Position_Buttons_Polygon(obj){ global Gui,15:Font,cWhite s8 , ;Segoe Ui Gui,15:Add,Button,x40 y10 w50 h25 -Theme vMove_Up gRePosition_Polygon_Element,Y Up Gui,15:Add,Button,x10 y+5 w50 h25 -Theme vMove_Left gRePosition_Polygon_Element,X Left Gui,15:Add,Button,x+10 yp w50 h25 -Theme vMove_Right gRePosition_Polygon_Element,X Right Gui,15:Add,Button,x40 y+5 w50 h25 -Theme vMove_Down gRePosition_Polygon_Element,Y Down Gui,15:Add,ListBox,x150 y10 w80 h90 -Theme Gui,15:Add,Button,x10 y105 w105 h25 -Theme ,< - - 返回 ;<-- Back Gui,15:Add,Button,x+20 y105 w105 h25 -Theme ,下一个 - - > ;Next --> Gui,15:Add,Text,x10 y140 w30 h20 ,X : Gui,15:Add,Edit,x+0 w50 h20 Center -E0x200 Border, Gui,15:Add,Text,x+15 y140 w30 h20 ,Y : Gui,15:Add,Edit,x+0 w50 h20 Center -E0x200 Border, Gui,15:Add,Button,x+10 yp w50 h25 -Theme ,设置 ;Set Gui,15:Add,Button,x5 y170 w75 h25 -Theme,添加 ;Add Gui,15:Add,Button,x+5 w75 h25 -Theme,删除 ;Remove Gui,15:Add,Button,x+5 w75 h25 -Theme,插入 ;Insert } } ;********************************************************************************************** ; Master Element Class ;********************************************************************************************** Class Element { __New( Type , path := "" ){ local Width, Height ;~ ToolTip, % path "`n" Default_Values.Default_Element_W This.Type:= Type This.X:= Default_Values.Default_Element_X This.Y:= Default_Values.Default_Element_Y This.W:= Default_Values.Default_Element_W This.H:= Default_Values.Default_Element_H This.X2:= Default_Values.Default_Element_X2 This.Y2:= Default_Values.Default_Element_Y2 This.X3:= Default_Values.Default_Element_X3 This.Y3:= Default_Values.Default_Element_Y3 This.X4:= Default_Values.Default_Element_X4 This.Y4:= Default_Values.Default_Element_Y4 This.Alpha:= Default_Values.Default_Element_Alpha This.Color:= Default_Values.Default_Element_Color This.Alpha2:= Default_Values.Default_Element_Alpha2 This.Color2:= Default_Values.Default_Element_Color2 This.Thickness:= Default_Values.Default_Element_Thickness This.Radius:= Default_Values.Default_Element_Radius This.Hatch:= Default_Values.Default_Element_Hatch This.Notes:= "" This.Text:= Default_Values.Default_Element_Text This.Options:= Default_Values.Default_Element_Options This.Font:= Default_Values.Default_Element_Font This.Brush_Type:= Default_Values.Default_Element_Brush_Type This.Hidden:= Default_Values.Default_Element_Hidden This.Line_Brush_X1:= Default_Values.Default_Element_Line_Brush_X1 This.Line_Brush_Y1:= Default_Values.Default_Element_Line_Brush_Y1 This.Line_Brush_X2:= Default_Values.Default_Element_Line_Brush_X2 This.Line_Brush_Y2:= Default_Values.Default_Element_Line_Brush_Y2 This.Line_Brush_Wrap_Mode:= Default_Values.Default_Element_Line_Brush_Wrap_Mode This.Grade_Brush_X:= Default_Values.Default_Element_Grade_Brush_X This.Grade_Brush_Y:= Default_Values.Default_Element_Grade_Brush_Y This.Grade_Brush_W:= Default_Values.Default_Element_Grade_Brush_W This.Grade_Brush_H:= Default_Values.Default_Element_Grade_Brush_H This.Grade_Brush_LinearGradientMode:= Default_Values.Default_Element_Grade_Brush_LinearGradientMode This.Grade_Brush_Wrap_Mode:= Default_Values.Default_Element_Grade_Brush_Wrap_Mode This.Start_Angle:= Default_Values.Default_Element_Start_Angle This.End_Angle:= Default_Values.Default_Element_End_Angle This.Polygon_List:= Default_Values.Default_Element_Polygon_List This.Lines_List:= Default_Values.Default_Element_Lines_List if( path ){ ;~ SoundBeep, 1500 This.Path := path This.PicBitmap := Gdip_CreateBitmapFromFile( This.Path ) Gdip_GetImageDimensions( This.PicBitmap , Width , Height ) This.X := 0 This.Y := 0 This.W := Width This.H := Height ;~ SoundBeep, 500 ;~ ToolTip, % path This.SourceX := 0 This.SourceY := 0 This.SourceW := Width This.SourceH := Height This.SourceWidth := Width This.SourceHeight := Height }else { This.Path := "" This.SourceX := 0 This.SourceY := 0 This.SourceW := 100 This.SourceH := 100 This.SourceWidth := 100 This.SourceHeight := 100 } } } ;********************************************************************************************** ; Main Windows Class ;%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% class Main_Window { ;~ __New(x:=1366,y:=0,w:=1350,h:=700){ __New(x:=0,y:=0,w:=1350,h:=700){ This.X:=x, This.Y:=y, This.W:=w, This.H:=h This.Create_Main_Window() This.Create_Left_Control_Window() This.Create_Right_Control_Window() This.Create_Element_Control_Window() This.Create_Bitmap_Control_Panel() This.Inner_Window() This.Setup_Gdip() } Create_Main_Window(){ global Gui,1: +LastFound -DPIScale ;+AlwaysOnTop Gui,1:Color,222222,333333 Gui,1:Font,cWhite s10 q5, Segoe UI Gui,1:Add,Progress,% "x0 y0 w" This.W " h3 Background880000" Gui,1:Add,Progress,% "x0 y" This.H-3 " w" This.W " h3 Background880000" Gui,1:Add,Button,x305 y5 w110 r1 -Theme gRemove_Active_Bitmap,删除位图 ;Remove Bitmap Gui,1:Add,DDL,x+5 y5 w160 r20 -Theme AltSubmit vActive_Bitmaps_List, Gui,1:Add,Button,x+5 yp w110 r1 -Theme gSet_Active_Bitmap,激活位图 ;Activate Bitmap Gui,1:Add,DDL,x+25 y5 w190 r20 -Theme vSelected_New_Element , Gui,1:Add,Button,x+5 yp w130 r1 -Theme gAdd_New_Element,添加 ;Add Gui,1:Show,% "x" This.X " y" This.Y " w" This.W " h" This.H ,HB Bitmap Maker } Create_Left_Control_Window(){ global Gui,2:+AlwaysOnTop -DPIScale -Caption +Parent1 Gui,2:Color,333333,444444 Gui,2:Font,cWhite s10 q5, Segoe UI Gui,2:Add,Progress,% "x297 y0 w3 h" This.H " Background880000" Gui,2:Add,Text,x8 y10 w90 h30 vTab1 gSwap_Tabs,Tab 1 trigger Gui,2:Add,Text,x+5 y10 w90 h30 vTab2 gSwap_Tabs,Tab 2 trigger Gui,2:Add,Text,x+5 y10 w90 h30 vTab3 gSwap_Tabs,Tab 3 trigger Gui,2:Add,Progress,x3 y5 w290 h40 Background442222 Gui,2:Add,Progress,x8 y10 w90 h30 Background3399FF vTab1_Background Gui,2:Add,Progress,x+5 y10 w90 h30 Background777777 vTab2_Background Gui,2:Add,Progress,x+5 y10 w90 h30 Background777777 vTab3_Background Gui,2:Add,Text,cBlack x8 y10 w90 h30 Border Center BackgroundTrans 0x200 vTab1_Text,新建 ;New Gui,2:Add,Text,cBlack x+5 y10 w90 h30 Border Center BackgroundTrans 0x200 vTab2_Text,导入 ;Load Gui,2:Add,Text,cBlack x+5 y10 w90 h30 Border Center BackgroundTrans 0x200 vTab3_Text,保存 ;Save Gui,2:Show,% "x0 y0 w300 h" This.H This.Create_Window_2_Tabs() } Create_Right_Control_Window(){ global Gui,3:+AlwaysOnTop -DPIScale -Caption +Parent1 Gui,3:Color,333333,444444 Gui,3:Font,cWhite s10 q5, Segoe UI Gui,3:Add,Progress,% "x0 y0 w3 h" This.H " Background880000" Gui,3:Add,Text,x8 y10 w90 h30 vTab4 gSwap_Tabs,Tab 4 trigger Gui,3:Add,Text,x+5 y10 w90 h30 vTab5 gSwap_Tabs,Tab 5 trigger Gui,3:Add,Text,x+5 y10 w90 h30 vTab6 gSwap_Tabs,Tab 6 trigger Gui,3:Add,Progress,x3 y5 w290 h40 Background442222 Gui,3:Add,Progress,x8 y10 w90 h30 Background3399FF vTab4_Background Gui,3:Add,Progress,x+5 y10 w90 h30 Background777777 vTab5_Background Gui,3:Add,Progress,x+5 y10 w90 h30 Background777777 vTab6_Background Gui,3:Add,Text,cBlack x8 y10 w90 h30 Border Center BackgroundTrans 0x200 vTab4_Text,元素 ;Elements Gui,3:Add,Text,cBlack x+5 y10 w90 h30 Border Center BackgroundTrans 0x200 vTab5_Text,默认 ;Defaults Gui,3:Add,Text,cBlack x+5 y10 w90 h30 Border Center BackgroundTrans 0x200 vTab6_Text,Tab 6 Gui,3:Show,% "x" This.W-300 " y0 w300 h" This.H This.Create_Window_3_Tabs() } Inner_Window(){ Gui,4:+AlwaysOnTop -DPIScale -Caption +Parent1 +LastFound Gui,4:Color,004444,444444 Gui,4:Font,cWhite s10 q5, Segoe UI Gui,4:Show,% "x0 y40 w" This.W " h" This.H-50 } Create_Window_2_Tabs(){ ;Tabs 1 - 3 global ; Tab 1 ;&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& Gui,5:+Parent2 -Caption -DPIScale +AlwaysOnTop Gui,5:Color,333333,444444 Gui,5:Font,cWhite s10 q5, Segoe UI Gui,5:Add,Text,x10 y30 w70 r1,背景颜色 ;Background Color Gui,5:Add,Edit,x+10 yp w100 r1 vBitmapBackgroundColor gChange_Bitmap_Background_Color,004444 Gui,5:Add,Text,x10 y+50 w267 r2 Border Center, 新建位图 ;New Bitmap Gui,5:Add,Text,x5 y+10 w40 r1 ,Name : Gui,5:Add,Edit,x+10 yp w200 r1 Center -E0x200 +Border ReadOnly vNew_Bitmap_Name,1 Gui,5:Add,Text,x5 y+10 w40 r1 ,X : Gui,5:Add,Edit,x+10 yp w200 r1 Center Number -E0x200 +Border vNew_Bitmap_X,% Default_Values.Default_Bitmap_X Gui,5:Add,Text,x5 y+10 w40 r1 ,Y : Gui,5:Add,Edit,x+10 yp w200 r1 Center Number -E0x200 +Border vNew_Bitmap_Y,% Default_Values.Default_Bitmap_Y Gui,5:Add,Text,x5 y+10 w40 r1 ,W : Gui,5:Add,Edit,x+10 yp w200 r1 Center Number -E0x200 +Border vNew_Bitmap_W,% Default_Values.Default_Bitmap_W Gui,5:Add,Text,x5 y+10 w40 r1 ,H : Gui,5:Add,Edit,x+10 yp w200 r1 Center Number -E0x200 +Border vNew_Bitmap_H,% Default_Values.Default_Bitmap_H Gui,5:Add,Text,x5 y+10 w40 r1 ,平滑: ; Smoothing : Gui,5:Add,Edit,x+10 yp w200 r1 Limit1 Center Number -E0x200 +Border vNew_Bitmap_Smoothing,% Default_Values.Default_Bitmap_Smoothing Gui,5:Add,Button,x20 y+10 w247 r1 -Theme gAdd_New_Bitmap,添加新位图 ;Add New Bitmap Gui,5:Show,x5 y50 w287 h640 ; Tab 2 ;&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& Gui,6:+Parent2 -Caption -DPIScale +AlwaysOnTop Gui,6:Color,333333,444444 Gui,6:Font,cWhite s10 q5, Segoe UI Gui,6:Add,ListBox,x5 y10 w280 r10 -Theme vList_Of_Saved_Bitmaps,% Saved_Bitmap_List Gui,6:Add,Button,x5 y+10 w280 r1 -Theme gTest_Load,加载位图 ;Load Bitmap Gui,6:Add,Button,x5 y+20 w280 r1 -Theme gClip_Bitmap,加载位图到剪切板 ;Clipboard Bitmap Gui,6:Add,CheckBox,x10 y+100 gUnlock_Delete_Bitmap,解锁 ;Unlock Gui,6:Add,Button,x10 y+10 w267 r1 -Theme Disabled vDelete_Bitmap_Button gDelete_Bitmap,删除位图 ;Delete Bitmap Gui,6:Show,Hide x5 y50 w287 h640 ; Tab 3 ;&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& Gui,7:+Parent2 -Caption -DPIScale +AlwaysOnTop Gui,7:Color,333333,444444 Gui,7:Font,cWhite s10 q5, Segoe UI Gui,7:Add,Text,cLime x10 y10 w267 r3 Center Border vDisplay_Current_Bitmap_Name ,`n已经激活的位图 : %Active_Bitmap% ;`nActive Bitmap : %Active_Bitmap% Gui,7:Add,ListBox,x10 y+20 w267 r10 -Theme vList_Of_Existing_Saves gDump_Name_In_Name_To_Save_Edit,% Saved_Bitmap_List Gui,7:Submit,NoHide Gui,7:Add,Text,x10 y+20 w100 r1,Name : Gui,7:Add,Edit,x10 y+10 w267 r1 -E0x200 +Border vName_To_Save_Files,% List_Of_Existing_Saves Gui,7:Add,Button,x10 y+20 w267 r1 -Theme gSave_Code,保存位图 ;Save Bitmap Gui,7:Add,Button,x10 y+10 w267 r1 -Theme gSave_PNG,保存成PNG文件 ;Save PNG ;Added in update 0.1.7 ;------------------------------------- Gui,7:Add,Progress,x20 y+50 w200 h30 BackgroundBlack c880000 vSave_Progress,0 ;----------------------------------- Gui,7:Show,Hide x5 y50 w287 h640 } Create_Window_3_Tabs(){ global Gui,8:+Parent3 -Caption -DPIScale +AlwaysOnTop Gui,8:Color,333333,444444 Gui,8:Font,cWhite s10 q5, Segoe UI Gui,8:Add,ListBox,x5 y0 w170 r15 -Theme AltSubmit vCurrent_Elements gSwitch_Active_Element,% Element_List Gui,8:Add,Checkbox,x+10 yp Checked -Theme vAuto_Draw gSet_Auto_Draw,自动刷新 ;Auto Draw Gui,8:Add,Button,xp y+5 w100 h20 -Theme gForce_Draw,刷新 ;Draw Gui,8:Add,Button,xp y+5 w45 h20 -Theme vReOrder_Up gReOrder_Elements,上移 ;Up Gui,8:Add,Button,x+10 yp w45 h20 -Theme vReOrder_Down gReOrder_Elements,下移 ;Down Gui,8:Add,Checkbox,xp-55 y+5 gUnlock_Element_Remove,解锁 ;Unlock Gui,8:Add,Button,xp y+5 w100 h20 -Theme Disabled vElement_Remove_Button gRemove_Element,清除 ;Remove Gui,8:Add,Button,xp y+10 w100 h25 -Theme gClone_Element,克隆 ;Clone This.Create_Tab_4_Element_Window() Gui,8:Show,x5 y50 w287 h640 ;--------------------------------------------------------------------- Gui,9:+Parent3 -Caption -DPIScale +AlwaysOnTop Gui,9:Color,333333,444444 Gui,9:Font,cWhite s8 q5, Segoe UI Gui,9:Add,Text,x10 y0 w267 h22 Center Border,位图默认值 ;Bitmap Defaults ;-------------------------------Bitmap Defaults Gui,9:Add,Text,x10 y+5 w40 h20 ,X : Gui,9:Add,Edit,x+10 yp-2 w60 h20 -E0x200 Border Center vDefault_Bitmap_X gSubmit_Defaults,% Default_Values.Default_Bitmap_X Gui,9:Add,Text,x+10 yp+2 w40 h20 ,Y : Gui,9:Add,Edit,x+10 yp-2 w60 h20 -E0x200 Border Center vDefault_Bitmap_Y gSubmit_Defaults,% Default_Values.Default_Bitmap_Y Gui,9:Add,Text,x10 y+5 w40 h20 ,W : Gui,9:Add,Edit,x+10 yp-2 w60 h20 -E0x200 Border Center vDefault_Bitmap_W gSubmit_Defaults,% Default_Values.Default_Bitmap_W Gui,9:Add,Text,x+10 yp+2 w40 h20 ,H : Gui,9:Add,Edit,x+10 yp-2 w60 h20 -E0x200 Border Center vDefault_Bitmap_H gSubmit_Defaults,% Default_Values.Default_Bitmap_H Gui,9:Add,Text,x10 y+5 w40 h20 ,平滑 : ;Smoothing : Gui,9:Add,Edit,x+10 yp-2 w60 h20 -E0x200 Border Center vDefault_Bitmap_Smoothing gSubmit_Defaults,% Default_Values.Default_Bitmap_Smoothing Gui,9:Add,Text,x10 y+5 w267 h22 Center Border,元素默认值 ;Element Defaults ;-------------------------------Element Defaults Gui,9:Add,Text,x10 y+5 w40 h20 ,W : Gui,9:Add,Edit,x+10 yp-2 w60 h20 -E0x200 Border Center vDefault_Element_W gSubmit_Defaults,% Default_Values.Default_Element_W Gui,9:Add,Text,x+10 yp+2 w40 h20 ,H : Gui,9:Add,Edit,x+10 yp-2 w60 h20 -E0x200 Border Center vDefault_Element_H gSubmit_Defaults,% Default_Values.Default_Element_H Gui,9:Add,Text,x10 y+5 w40 h20 ,X : Gui,9:Add,Edit,x+10 yp-2 w60 h20 -E0x200 Border Center vDefault_Element_X gSubmit_Defaults,% Default_Values.Default_Element_X Gui,9:Add,Text,x+10 yp+2 w40 h20 ,Y : Gui,9:Add,Edit,x+10 yp-2 w60 h20 -E0x200 Border Center vDefault_Element_Y gSubmit_Defaults,% Default_Values.Default_Element_Y Gui,9:Add,Text,x10 y+5 w40 h20 ,X2 : Gui,9:Add,Edit,x+10 yp-2 w60 h20 -E0x200 Border Center vDefault_Element_X2 gSubmit_Defaults,% Default_Values.Default_Element_X2 Gui,9:Add,Text,x+10 yp+2 w40 h20 ,Y2 : Gui,9:Add,Edit,x+10 yp-2 w60 h20 -E0x200 Border Center vDefault_Element_Y2 gSubmit_Defaults,% Default_Values.Default_Element_Y2 Gui,9:Add,Text,x10 y+5 w40 h20 ,X3 : Gui,9:Add,Edit,x+10 yp-2 w60 h20 -E0x200 Border Center vDefault_Element_X3 gSubmit_Defaults,% Default_Values.Default_Element_X3 Gui,9:Add,Text,x+10 yp+2 w40 h20 ,Y3 : Gui,9:Add,Edit,x+10 yp-2 w60 h20 -E0x200 Border Center vDefault_Element_Y3 gSubmit_Defaults,% Default_Values.Default_Element_Y3 Gui,9:Add,Text,x10 y+5 w40 h20 ,X4 : Gui,9:Add,Edit,x+10 yp-2 w60 h20 -E0x200 Border Center vDefault_Element_X4 gSubmit_Defaults,% Default_Values.Default_Element_X4 Gui,9:Add,Text,x+10 yp+2 w40 h20 ,Y4 : Gui,9:Add,Edit,x+10 yp-2 w60 h20 -E0x200 Border Center vDefault_Element_Y4 gSubmit_Defaults,% Default_Values.Default_Element_Y4 Gui,9:Add,Text,x10 y+5 w40 h20 ,透明度 ;Alpha : Gui,9:Add,Edit,x+10 yp-2 w60 h20 -E0x200 Border Center vDefault_Element_Alpha gSubmit_Defaults,% Default_Values.Default_Element_Alpha Gui,9:Add,Text,x+10 yp+2 w40h20 ,颜色 ;Color : Gui,9:Add,Edit,x+10 yp-2 w60 h20 -E0x200 Border Center vDefault_Element_Color gSubmit_Defaults,% Default_Values.Default_Element_Color Gui,9:Add,Text,x10 y+5 w40 h20 ,透明度 ;Alpha2 : Gui,9:Add,Edit,x+10 yp-2 w60 h20 -E0x200 Border Center vDefault_Element_Alpha2 gSubmit_Defaults,% Default_Values.Default_Element_Alpha2 Gui,9:Add,Text,x+10 yp+2 w40 h20 ,颜色 ;Color2 : Gui,9:Add,Edit,x+10 yp-2 w60 h20 -E0x200 Border Center vDefault_Element_Color2 gSubmit_Defaults,% Default_Values.Default_Element_Color2 Gui,9:Add,Text,x3 y+5 w55 h20 ,Hatch : Gui,9:Add,Edit,x+0 yp-2 w30 h20 -E0x200 Border Center vDefault_Element_Hatch gSubmit_Defaults,% Default_Values.Default_Element_Hatch Gui,9:Add,Text,x+3 yp+2 w55 h20 ,半径 ;Radius : Gui,9:Add,Edit,x+0 yp-2 w30 h20 -E0x200 Border Center vDefault_Element_Radius gSubmit_Defaults,% Default_Values.Default_Element_Radius Gui,9:Add,Text,x+3 yp+2 w75 h20 ,Thickness : Gui,9:Add,Edit,x+0 yp-2 w30 h20 -E0x200 Border Center vDefault_Element_Thickness gSubmit_Defaults,% Default_Values.Default_Element_Thickness Gui,9:Add,Text,x5 y+5 w90 h20 ,Start Angle : Gui,9:Add,Edit,x+0 yp-2 w40 h20 -E0x200 Border Center vDefault_Element_Start_Angle gSubmit_Defaults,% Default_Values.Default_Element_Start_Angle Gui,9:Add,Text,x+10 yp+2 w100 h20 ,Sweep Angle : Gui,9:Add,Edit,x+0 yp-2 w40 h20 -E0x200 Border Center vDefault_Element_End_Angle gSubmit_Defaults,% Default_Values.Default_Element_End_Angle Gui,9:Add,Text,x10 y+5 w45 h20 ,文字 ;Text : Gui,9:Add,Edit,x+0 yp-2 w90 h20 -E0x200 Border Center vDefault_Element_Text gSubmit_Defaults,% Default_Values.Default_Element_Text Gui,9:Add,Text,x+5 yp+2 w45 h20 ,字体 ;Font : Gui,9:Add,Edit,x+0 yp-2 w90 h20 -E0x200 Border Center vDefault_Element_Font gSubmit_Defaults,% Default_Values.Default_Element_Font Gui,9:Add,Text,x10 y+5 w65 h20 ,文字选项 ;Text Options : Gui,9:Add,Edit,x+0 yp-2 w210 h20 -E0x200 Border vDefault_Element_Options gSubmit_Defaults,% Default_Values.Default_Element_Options Gui,9:Add,Text,x10 y+5 w65 h20 ,隐藏 ;Hidden : Gui,9:Add,Edit,x+0 yp-2 w40 h20 -E0x200 Border Center Limit1 Number vDefault_Element_Hidden gSubmit_Defaults,% Default_Values.Default_Element_Hidden Gui,9:Add,Text,x+15 yp+2 w95 h20 ,刷子类型 ;Brush Type : Gui,9:Add,Edit,x+0 yp-2 w40 h20 -E0x200 Border Center Limit1 Number vDefault_Element_Brush_Type gSubmit_Defaults,% Default_Values.Default_Element_Brush_Type Gui,9:Add,Text,x10 y+5 w65 h20 ,多边形 ;Polygon List : Gui,9:Add,Edit,x+0 yp-2 w210 h20 -E0x200 Border Center vDefault_Element_Polygon_List gSubmit_Defaults,% Default_Values.Default_Element_Polygon_List Gui,9:Add,Text,x10 y+5 w65 h20 ,多线段 ;Lines List : Gui,9:Add,Edit,x+0 yp-2 w210 h20 -E0x200 Border Center vDefault_Element_Lines_List gSubmit_Defaults,% Default_Values.Default_Element_Lines_List Gui,9:Add,Text,x10 y+5 w267 h22 Center Border,线刷 ;Line Brush Gui,9:Add,Text,x10 y+5 w25 h20 ,X1 : Gui,9:Add,Edit,x+0 yp-2 w40 h20 -E0x200 Border Center vDefault_Element_Line_Brush_X1 gSubmit_Defaults,% Default_Values.Default_Element_Line_Brush_X1 Gui,9:Add,Text,x+5 yp+2 w25 h20 ,Y1 : Gui,9:Add,Edit,x+0 yp-2 w40 h20 -E0x200 Border Center vDefault_Element_Line_Brush_Y1 gSubmit_Defaults,% Default_Values.Default_Element_Line_Brush_Y1 Gui,9:Add,Text,x+5 yp+2 w25 h20 ,X2 : Gui,9:Add,Edit,x+0 yp-2 w40 h20 -E0x200 Border Center vDefault_Element_Line_Brush_X2 gSubmit_Defaults,% Default_Values.Default_Element_Line_Brush_X2 Gui,9:Add,Text,x+5 yp+2 w25 h20 ,Y2 : Gui,9:Add,Edit,x+0 yp-2 w40 h20 -E0x200 Border Center vDefault_Element_Line_Brush_Y2 gSubmit_Defaults,% Default_Values.Default_Element_Line_Brush_Y2 Gui,9:Add,Text,x10 y+5 w100 h20 ,循环模式 ;Wrap Mode : Gui,9:Add,Edit,x+10 yp-2 w40 h20 -E0x200 Border Center Limit1 Number vDefault_Element_Line_Brush_Wrap_Mode gSubmit_Defaults,% Default_Values.Default_Element_Line_Brush_Wrap_Mode Gui,9:Add,Text,x10 y+5 w267 h22 Center Border,梯度刷 ;Gradient Brush Gui,9:Add,Text,x10 y+5 w40 h20 ,X : Gui,9:Add,Edit,x+10 yp-2 w60 h20 -E0x200 Border Center vDefault_Element_Grade_Brush_X gSubmit_Defaults,% Default_Values.Default_Element_Grade_Brush_X Gui,9:Add,Text,x+10 yp+2 w40 h20 ,Y : Gui,9:Add,Edit,x+10 yp-2 w60 h20 -E0x200 Border Center vDefault_Element_Grade_Brush_Y gSubmit_Defaults,% Default_Values.Default_Element_Grade_Brush_Y Gui,9:Add,Text,x10 y+5 w40 h20 ,W : Gui,9:Add,Edit,x+10 yp-2 w60 h20 -E0x200 Border Center vDefault_Element_Grade_Brush_W gSubmit_Defaults,% Default_Values.Default_Element_Grade_Brush_W Gui,9:Add,Text,x+10 yp+2 w40 h20 ,H : Gui,9:Add,Edit,x+10 yp-2 w60 h20 -E0x200 Border Center vDefault_Element_Grade_Brush_H gSubmit_Defaults,% Default_Values.Default_Element_Grade_Brush_H Gui,9:Add,Text,x5 y+5 w150 h20 ,循环模式 ;Wrap Mode : Gui,9:Add,Edit,x+0 yp-2 w30 h20 -E0x200 Border Center Limit1 Number vDefault_Element_Grade_Brush_Wrap_Mode gSubmit_Defaults,% Default_Values.Default_Element_Grade_Brush_Wrap_Mode Gui,9:Add,Text,x5 y+5 w150 h20 ,线性梯度模式 ;Linear Gradient Mode : Gui,9:Add,Edit,x+0 yp-2 w30 h20 -E0x200 Border Center Limit1 Number vDefault_Element_Grade_Brush_LinearGradientMode gSubmit_Defaults,% Default_Values.Default_Element_Grade_Brush_LinearGradientMode Gui,9:Add,Button,x+10 yp-10 w100 h30 -Theme gSave_Defaults,保存 ;Save Gui,9:Show,Hide x5 y50 w287 h640 Gui,9:Submit,NoHide ;--------------------------------------------------------------------- Gui,10:+Parent3 -Caption -DPIScale +AlwaysOnTop Gui,10:Color,333333,444444 Gui,10:Font,cWhite s8 q5, Segoe UI Gui,10:Add,DDL,x10 y100 w270 r10 -Theme,Credits||Speed Master- Code Refactor / extra hotkeys| ;~ Gui,10:Add,Button,x10 y200 w200 h30 -Theme, This is Tab 6 Gui,10:Show,Hide x5 y50 w287 h640 } Create_Tab_4_Element_Window(){ Gui,12:+Parent8 -Caption -DPIScale +AlwaysOnTop Gui,12:Color,333333,444444 Gui,12:Show,x0 y260 w287 h380 } Create_Element_Control_Window(){ Gui,11:+Parent1 -Caption -DPIScale +AlwaysOnTop Gui,11:Color,333333,444444 Gui,11:Add,Progress,x0 y0 w250 h3 Background880000 Gui,11:Add,Progress,x0 y0 w3 h200 Background880000 Gui,11:Add,Progress,x247 y0 w3 h200 Background880000 Gui,11:Show,x780 y500 w250 h200 } Create_Bitmap_Control_Panel(){ Gui,16:+Parent1 -Caption -DPIScale +AlwaysOnTop Gui,16:Color,333333,444444 Gui,16:Font,cWhite s10 q5, Segoe UI Gui,16:Add,Progress,x0 y0 w350 h3 Background880000 Gui,16:Add,Progress,x0 y0 w3 h200 Background880000 Gui,16:Add,Progress,x347 y0 w3 h200 Background880000 Gui,16:Show,x320 y500 w350 h200 } Setup_Gdip(){ This.Token:=Gdip_Startup() This.HWND:= WinExist() } Setup_DC(obj){ obj.hdc1:= GetDC(This.HWND) obj.hdc2:=CreateCompatibleDC() obj.hbm:=CreateDIBSection(obj.W,obj.H) obj.obm:= SelectObject(obj.hdc2,obj.hbm) obj.G:= Gdip_GraphicsFromHDC(obj.hdc2) } Resize_DC(obj,w,h){ obj.hdc1:= GetDC(This.HWND) obj.hdc2:=CreateCompatibleDC() obj.hbm:=CreateDIBSection(W,H) obj.obm:= SelectObject(obj.hdc2,obj.hbm) obj.G:= Gdip_GraphicsFromHDC(obj.hdc2) } } ;%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% ; Bitmap Class ;%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% class BitMap_Class { __New(x,y,w,h,smoothing,Name,Raster:=""){ global This.X:=x This.Y:=y This.W:=w This.H:=h This.Name:=Name This.Zoom:=1.00 This.Bitmap_Elements:=[] Windows.Setup_DC(This) This.Smoothing:=smoothing This.Raster:=Raster This.Create_BitMap() Gui,4:Add,Text,% "x" This.X " y" This.Y " w" This.W " h" This.H " gMove_Graphics v" This.Name This.move() } Zoom_Bitmap(){ Windows.Resize_DC(This,This.W*This.Zoom,This.H*This.Zoom) GuiControl,4:Move,% This.Name,% "w" This.W*This.Zoom " h" This.H*This.Zoom } move(){ Gdip_GraphicsClear(This.G) Gdip_DrawImage(This.G,This.Bitmap,0,0,This.W*This.Zoom,This.H*This.Zoom) BitBlt(This.hdc1 , This.X , This.Y , This.W*This.Zoom , This.H*This.Zoom , This.hdc2 ,0,0,This.Raster) } Create_BitMap(Save_Flag:=0){ if(Save_Flag=0){ ;---------------------------------------------- ;Fix memory leak Gdip_DisposeImage(This.Bitmap) This.Bitmap:="" Gdip_DeleteGraphics( This.Bitmap_G ) This.Bitmap_G:="" ;---------------------------------------------- This.Bitmap:=Gdip_CreateBitmap(This.W,This.H),This.Bitmap_G := Gdip_GraphicsFromImage(This.Bitmap),Gdip_SetSmoothingMode(This.Bitmap_G,This.Smoothing) } else if(Save_Flag=1){ FileDelete,%A_ScriptDir%\HB Bitmap Maker Folder\Saved Bitmaps Functions\%Name_To_Save_Files%.txt Bitmap_Settings:="HB_BITMAP_MAKER(){`n`t;Bitmap Created Using: HB Bitmap Maker`n`tpBitmap := Gdip_CreateBitmap( " This.W " , " This.H " ) , G := Gdip_GraphicsFromImage( pBitmap ) , Gdip_SetSmoothingMode( G , " This.Smoothing " )" FileAppend,%Bitmap_Settings%,%A_ScriptDir%\HB Bitmap Maker Folder\Saved Bitmaps Functions\%Name_To_Save_Files%.txt Bitmap_Settings:="" } } Create_Brush(index,Save_Flag:=0){ if(Save_Flag=0){ if(This.Bitmap_Elements[index].Brush_Type=1) This.Brush1:=New_Brush(This.Bitmap_Elements[index].Color,This.Bitmap_Elements[index].Alpha) else if(This.Bitmap_Elements[index].Brush_Type=2) This.Brush1:=Gdip_BrushCreateHatch("0x" This.Bitmap_Elements[index].Alpha This.Bitmap_Elements[index].Color,"0x" This.Bitmap_Elements[index].Alpha2 This.Bitmap_Elements[index].Color2 , This.Bitmap_Elements[index].Hatch) else if(This.Bitmap_Elements[index].Brush_Type=3) This.Brush1:=Gdip_CreateLineBrush(This.Bitmap_Elements[index].Line_Brush_X1, This.Bitmap_Elements[index].Line_Brush_Y1, This.Bitmap_Elements[index].Line_Brush_X2, This.Bitmap_Elements[index].Line_Brush_Y2, "0x" This.Bitmap_Elements[index].Alpha This.Bitmap_Elements[index].Color,"0x" This.Bitmap_Elements[index].Alpha2 This.Bitmap_Elements[index].Color2, This.Bitmap_Elements[index].Line_Brush_Wrap_Mode) else if(This.Bitmap_Elements[index].Brush_Type=4) This.Brush1:=Gdip_CreateLineBrushFromRect(This.Bitmap_Elements[index].Grade_Brush_X, This.Bitmap_Elements[index].Grade_Brush_Y, This.Bitmap_Elements[index].Grade_Brush_W, This.Bitmap_Elements[index].Grade_Brush_H,"0x" This.Bitmap_Elements[index].Alpha This.Bitmap_Elements[index].Color,"0x" This.Bitmap_Elements[index].Alpha2 This.Bitmap_Elements[index].Color2, This.Bitmap_Elements[index].Grade_Brush_LinearGradientMode, This.Bitmap_Elements[index].Grade_Brush_Wrap_Mode) }else if(Save_Flag=1){ if(This.Bitmap_Elements[index].Brush_Type=1) Brush:="`n`tBrush := Gdip_BrushCreateSolid( ""0x" This.Bitmap_Elements[index].Alpha This.Bitmap_Elements[index].Color """ )" else if(This.Bitmap_Elements[index].Brush_Type=2) Brush:="`n`tBrush := Gdip_BrushCreateHatch( ""0x" This.Bitmap_Elements[index].Alpha This.Bitmap_Elements[index].Color """ , ""0x" This.Bitmap_Elements[index].Alpha2 This.Bitmap_Elements[index].Color2 """ , " This.Bitmap_Elements[index].Hatch " )" else if(This.Bitmap_Elements[index].Brush_Type=3) Brush:="`n`tBrush := Gdip_CreateLineBrush( " This.Bitmap_Elements[index].Line_Brush_X1 " , " This.Bitmap_Elements[index].Line_Brush_Y1 " , " This.Bitmap_Elements[index].Line_Brush_X2 " , " This.Bitmap_Elements[index].Line_Brush_Y2 " , ""0x" This.Bitmap_Elements[index].Alpha This.Bitmap_Elements[index].Color """ , ""0x" This.Bitmap_Elements[index].Alpha2 This.Bitmap_Elements[index].Color2 """ , " This.Bitmap_Elements[index].Line_Brush_Wrap_Mode " )" else if(This.Bitmap_Elements[index].Brush_Type=4) Brush:="`n`tBrush := Gdip_CreateLineBrushFromRect( " This.Bitmap_Elements[index].Grade_Brush_X " , " This.Bitmap_Elements[index].Grade_Brush_Y " , " This.Bitmap_Elements[index].Grade_Brush_W " , " This.Bitmap_Elements[index].Grade_Brush_H " , ""0x" This.Bitmap_Elements[index].Alpha This.Bitmap_Elements[index].Color """ , ""0x" This.Bitmap_Elements[index].Alpha2 This.Bitmap_Elements[index].Color2 """ , " This.Bitmap_Elements[index].Grade_Brush_LinearGradientMode " , " This.Bitmap_Elements[index].Grade_Brush_Wrap_Mode " )" if(This.Bitmap_Elements[index].Notes){ Notes:="`n`t;" This.Bitmap_Elements[index].Notes FileAppend,%Notes%,%A_ScriptDir%\HB Bitmap Maker Folder\Saved Bitmaps Functions\%Name_To_Save_Files%.txt Notes:="" } FileAppend,%Brush%,%A_ScriptDir%\HB Bitmap Maker Folder\Saved Bitmaps Functions\%Name_To_Save_Files%.txt Brush:="" } } Create_Pen(Index,Save_Flag){ if(Save_Flag=0){ if(This.Bitmap_Elements[index].Brush_Type=1){ This.Pen1:=New_Pen(This.Bitmap_Elements[index].Color,This.Bitmap_Elements[index].Alpha,This.Bitmap_Elements[index].Thickness) }else if(This.Bitmap_Elements[index].Brush_Type=2){ This.Brush1:=Gdip_BrushCreateHatch("0x" This.Bitmap_Elements[index].Alpha This.Bitmap_Elements[index].Color,"0x" This.Bitmap_Elements[index].Alpha2 This.Bitmap_Elements[index].Color2 , This.Bitmap_Elements[index].Hatch) This.Pen1:=Gdip_CreatePenFromBrush(This.Brush1,This.Bitmap_Elements[index].Thickness) Gdip_DeleteBrush(This.Brush1) }else if(This.Bitmap_Elements[index].Brush_Type=3){ This.Brush1:=Gdip_CreateLineBrush(This.Bitmap_Elements[index].Line_Brush_X1, This.Bitmap_Elements[index].Line_Brush_Y1, This.Bitmap_Elements[index].Line_Brush_X2, This.Bitmap_Elements[index].Line_Brush_Y2, "0x" This.Bitmap_Elements[index].Alpha This.Bitmap_Elements[index].Color,"0x" This.Bitmap_Elements[index].Alpha2 This.Bitmap_Elements[index].Color2, This.Bitmap_Elements[index].Line_Brush_Wrap_Mode) This.Pen1:=Gdip_CreatePenFromBrush(This.Brush1,This.Bitmap_Elements[index].Thickness) Gdip_DeleteBrush(This.Brush1) }else if(This.Bitmap_Elements[index].Brush_Type=4){ This.Brush1:=Gdip_CreateLineBrushFromRect(This.Bitmap_Elements[index].Grade_Brush_X, This.Bitmap_Elements[index].Grade_Brush_Y, This.Bitmap_Elements[index].Grade_Brush_W, This.Bitmap_Elements[index].Grade_Brush_H,"0x" This.Bitmap_Elements[index].Alpha This.Bitmap_Elements[index].Color,"0x" This.Bitmap_Elements[index].Alpha2 This.Bitmap_Elements[index].Color2, This.Bitmap_Elements[index].Grade_Brush_LinearGradientMode, This.Bitmap_Elements[index].Grade_Brush_Wrap_Mode) This.Pen1:=Gdip_CreatePenFromBrush(This.Brush1,This.Bitmap_Elements[index].Thickness) Gdip_DeleteBrush(This.Brush1) } }else if(Save_Flag=1){ if(This.Bitmap_Elements[index].Brush_Type=1){ Pen:="`n`tPen := Gdip_CreatePen( ""0x" This.Bitmap_Elements[index].Alpha This.Bitmap_Elements[index].Color """ , " This.Bitmap_Elements[index].Thickness " )" Brush:="" Delete_Brush:="" }else if(This.Bitmap_Elements[index].Brush_Type=2){ Brush:="`n`tBrush := Gdip_BrushCreateHatch( ""0x" This.Bitmap_Elements[index].Alpha This.Bitmap_Elements[index].Color """ , ""0x" This.Bitmap_Elements[index].Alpha2 This.Bitmap_Elements[index].Color2 """ , " This.Bitmap_Elements[index].Hatch " )" Pen:=" , Pen := Gdip_CreatePenFromBrush( Brush , " This.Bitmap_Elements[index].Thickness " )" Delete_Brush:=" , Gdip_DeleteBrush( Brush )" }else if(This.Bitmap_Elements[index].Brush_Type=3){ Brush:="`n`tBrush := Gdip_CreateLineBrush( " This.Bitmap_Elements[index].Line_Brush_X1 " , " This.Bitmap_Elements[index].Line_Brush_Y1 " , " This.Bitmap_Elements[index].Line_Brush_X2 " , " This.Bitmap_Elements[index].Line_Brush_Y2 " , ""0x" This.Bitmap_Elements[index].Alpha This.Bitmap_Elements[index].Color """ , ""0x" This.Bitmap_Elements[index].Alpha2 This.Bitmap_Elements[index].Color2 """ , " This.Bitmap_Elements[index].Line_Brush_Wrap_Mode " )" Pen:=" , Pen := Gdip_CreatePenFromBrush( Brush , " This.Bitmap_Elements[index].Thickness " )" Delete_Brush:=" , Gdip_DeleteBrush( Brush )" }else if(This.Bitmap_Elements[index].Brush_Type=4){ Brush:="`n`tBrush := Gdip_CreateLineBrushFromRect( " This.Bitmap_Elements[index].Grade_Brush_X " , " This.Bitmap_Elements[index].Grade_Brush_Y " , " This.Bitmap_Elements[index].Grade_Brush_W " , " This.Bitmap_Elements[index].Grade_Brush_H " , ""0x" This.Bitmap_Elements[index].Alpha This.Bitmap_Elements[index].Color """ , ""0x" This.Bitmap_Elements[index].Alpha2 This.Bitmap_Elements[index].Color2 """ , " This.Bitmap_Elements[index].Grade_Brush_LinearGradientMode " , " This.Bitmap_Elements[index].Grade_Brush_Wrap_Mode " )" Pen:=" , Pen := Gdip_CreatePenFromBrush( Brush , " This.Bitmap_Elements[index].Thickness " )" Delete_Brush:=" , Gdip_DeleteBrush( Brush )" } FileAppend,%Brush%,%A_ScriptDir%\HB Bitmap Maker Folder\Saved Bitmaps Functions\%Name_To_Save_Files%.txt FileAppend,%Pen%,%A_ScriptDir%\HB Bitmap Maker Folder\Saved Bitmaps Functions\%Name_To_Save_Files%.txt FileAppend,%Delete_Brush%,%A_ScriptDir%\HB Bitmap Maker Folder\Saved Bitmaps Functions\%Name_To_Save_Files%.txt Brush:="" Pen:="" Delete_Brush:="" } } Add_Picture( index , Save_Flag := 0 ){ if(Save_Flag=0){ Gdip_DrawImage( This.Bitmap_G , This.Bitmap_Elements[ index ].PicBitmap , This.Bitmap_Elements[ index ].X , This.Bitmap_Elements[index].Y , This.Bitmap_Elements[index].W , This.Bitmap_Elements[index].H , This.Bitmap_Elements[index].SourceX , This.Bitmap_Elements[index].SourceY , This.Bitmap_Elements[index].SourceW , This.Bitmap_Elements[index].SourceH) }else if(Save_Flag=1){ temp := "`n`tpicBitmap := Gdip_CreateBitmapFromFile( """ This.Bitmap_Elements[ index ].Path """ )" Temp.= " , Gdip_DrawImage( G , picBitmap , " This.Bitmap_Elements[ index ].X " , " This.Bitmap_Elements[index].Y " , " This.Bitmap_Elements[index].W " , " This.Bitmap_Elements[index].H " , " This.Bitmap_Elements[index].SourceX " , " This.Bitmap_Elements[index].SourceY " , " This.Bitmap_Elements[index].SourceW " , " This.Bitmap_Elements[index].SourceH " )" Temp.= " , Gdip_DisposeImage( picBitmap )" FileAppend,%Temp%,%A_ScriptDir%\HB Bitmap Maker Folder\Saved Bitmaps Functions\%Name_To_Save_Files%.txt Temp := "" } } Fill_Rectangle(index,Save_Flag:=0){ This.Create_Brush(index,Save_Flag) if(Save_Flag=0){ Fill_Box(This.Bitmap_G,This.Brush1,This.Bitmap_Elements[index].X,This.Bitmap_Elements[index].Y,This.Bitmap_Elements[index].W,This.Bitmap_Elements[index].H) Gdip_DeleteBrush(This.Brush1) This.Move() }else if(Save_Flag=1){ Temp:=" , Gdip_FillRectangle( G , Brush , " This.Bitmap_Elements[index].X " , " This.Bitmap_Elements[index].Y " , "This.Bitmap_Elements[index].W " , " This.Bitmap_Elements[index].H " )" Delete_Brush:=" , Gdip_DeleteBrush( Brush )" FileAppend,%Temp%,%A_ScriptDir%\HB Bitmap Maker Folder\Saved Bitmaps Functions\%Name_To_Save_Files%.txt FileAppend,%Delete_Brush%,%A_ScriptDir%\HB Bitmap Maker Folder\Saved Bitmaps Functions\%Name_To_Save_Files%.txt Delete_Brush:="" Temp:="" } } Fill_Rounded_Rectangle(index,Save_Flag:=0){ This.Create_Brush(index,Save_Flag) if(Save_Flag=0){ Gdip_FillRoundedRectangle(This.Bitmap_G,This.Brush1,This.Bitmap_Elements[index].X,This.Bitmap_Elements[index].Y,This.Bitmap_Elements[index].W,This.Bitmap_Elements[index].H, This.Bitmap_Elements[index].Radius) Gdip_DeleteBrush(This.Brush1) This.Move() }else if(Save_Flag=1){ Temp:=" , Gdip_FillRoundedRectangle( G , Brush , " This.Bitmap_Elements[index].X " , " This.Bitmap_Elements[index].Y " , " This.Bitmap_Elements[index].W " , " This.Bitmap_Elements[index].H " , " This.Bitmap_Elements[index].Radius " )" Delete_Brush:=" , Gdip_DeleteBrush( Brush )" FileAppend,%Temp%,%A_ScriptDir%\HB Bitmap Maker Folder\Saved Bitmaps Functions\%Name_To_Save_Files%.txt FileAppend,%Delete_Brush%,%A_ScriptDir%\HB Bitmap Maker Folder\Saved Bitmaps Functions\%Name_To_Save_Files%.txt Delete_Brush:="" Temp:="" } } Fill_Circle(index,Save_Flag:=0){ This.Create_Brush(index,Save_Flag) if(Save_Flag=0){ Gdip_FillEllipse(This.Bitmap_G,This.Brush1,This.Bitmap_Elements[index].X,This.Bitmap_Elements[index].Y,This.Bitmap_Elements[index].W,This.Bitmap_Elements[index].H) Gdip_DeleteBrush(This.Brush1) This.Move() }else if(Save_Flag=1){ Temp:=" , Gdip_FillEllipse( G , Brush , " This.Bitmap_Elements[index].X " , " This.Bitmap_Elements[index].Y " , " This.Bitmap_Elements[index].W " , " This.Bitmap_Elements[index].H " )" Delete_Brush:=" , Gdip_DeleteBrush( Brush )" FileAppend,%Temp%,%A_ScriptDir%\HB Bitmap Maker Folder\Saved Bitmaps Functions\%Name_To_Save_Files%.txt FileAppend,%Delete_Brush%,%A_ScriptDir%\HB Bitmap Maker Folder\Saved Bitmaps Functions\%Name_To_Save_Files%.txt Delete_Brush:="" Temp:="" } } Fill_Pie(index,Save_Flag:=0){ This.Create_Brush(index,Save_Flag) if(Save_Flag=0){ Gdip_FillPie(This.Bitmap_G,This.Brush1,This.Bitmap_Elements[index].X,This.Bitmap_Elements[index].Y,This.Bitmap_Elements[index].W,This.Bitmap_Elements[index].H, This.Bitmap_Elements[index].Start_Angle, This.Bitmap_Elements[index].End_Angle) Gdip_DeleteBrush(This.Brush1) This.Move() }else if(Save_Flag=1){ Temp:=" , Gdip_FillPie( G , Brush , " This.Bitmap_Elements[index].X " , " This.Bitmap_Elements[index].Y " , " This.Bitmap_Elements[index].W " , " This.Bitmap_Elements[index].H " , " This.Bitmap_Elements[index].Start_Angle " , " This.Bitmap_Elements[index].End_Angle " )" Delete_Brush:=" , Gdip_DeleteBrush( Brush )" FileAppend,%Temp%,%A_ScriptDir%\HB Bitmap Maker Folder\Saved Bitmaps Functions\%Name_To_Save_Files%.txt FileAppend,%Delete_Brush%,%A_ScriptDir%\HB Bitmap Maker Folder\Saved Bitmaps Functions\%Name_To_Save_Files%.txt Delete_Brush:="" Temp:="" } } Fill_Polygon(index,Save_Flag:=0){ ;~ ToolTip,% This.Bitmap_Elements[index].Polygon_List " here" This.Create_Brush(index,Save_Flag) if(Save_Flag=0){ Gdip_FillPolygon(This.Bitmap_G,This.Brush1, This.Bitmap_Elements[index].Polygon_List) ;, FillMode=0) Gdip_DeleteBrush(This.Brush1) This.Move() }else if(Save_Flag=1){ Temp:=" , Gdip_FillPolygon( G , Brush , """ This.Bitmap_Elements[index].Polygon_List """ )" Delete_Brush:=" , Gdip_DeleteBrush( Brush )" FileAppend,%Temp%,%A_ScriptDir%\HB Bitmap Maker Folder\Saved Bitmaps Functions\%Name_To_Save_Files%.txt FileAppend,%Delete_Brush%,%A_ScriptDir%\HB Bitmap Maker Folder\Saved Bitmaps Functions\%Name_To_Save_Files%.txt Delete_Brush:="" Temp:="" } } Text(Index,Save_Flag:=0){ This.Create_Brush(index,Save_Flag) if(Save_Flag=0){ Gdip_TextToGraphics(This.Bitmap_G, This.Bitmap_Elements[index].Text , This.Bitmap_Elements[index].Options " c" This.Brush1 " x" This.Bitmap_Elements[index].X " y" This.Bitmap_Elements[index].Y , This.Bitmap_Elements[index].Font , This.Bitmap_Elements[index].W , This.Bitmap_Elements[index].H ) }else if(Save_Flag=1){ if(This.Bitmap_Elements[index].Notes){ Notes:="`n`t;" This.Bitmap_Elements[index].Notes FileAppend,%Notes%,%A_ScriptDir%\HB Bitmap Maker Folder\Saved Bitmaps Functions\%Name_To_Save_Files%.txt Notes:="" } Temp:=" , Gdip_TextToGraphics( G , """ This.Bitmap_Elements[index].Text """ , """ This.Bitmap_Elements[index].Options " c"" Brush "" x" This.Bitmap_Elements[index].X " y" This.Bitmap_Elements[index].Y """ , """ This.Bitmap_Elements[index].Font """ , " This.Bitmap_Elements[index].W " , " This.Bitmap_Elements[index].H " )" Delete_Brush:=" , Gdip_DeleteBrush( Brush )" FileAppend,%Temp%,%A_ScriptDir%\HB Bitmap Maker Folder\Saved Bitmaps Functions\%Name_To_Save_Files%.txt FileAppend,%Delete_Brush%,%A_ScriptDir%\HB Bitmap Maker Folder\Saved Bitmaps Functions\%Name_To_Save_Files%.txt Delete_Brush:="" Temp:="" } } Draw_Rectangle(Index,Save_Flag:=0){ This.Create_Pen(Index,Save_Flag) if(Save_Flag=0){ Gdip_DrawRectangle(This.Bitmap_G,This.Pen1,This.Bitmap_Elements[index].X,This.Bitmap_Elements[index].Y,This.Bitmap_Elements[index].W,This.Bitmap_Elements[index].H) Gdip_DeletePen(This.Pen1) This.Move() }else if(Save_Flag=1){ Temp:=" , Gdip_DrawRectangle( G , Pen , " This.Bitmap_Elements[index].X " , " This.Bitmap_Elements[index].Y " , " This.Bitmap_Elements[index].W " , " This.Bitmap_Elements[index].H " )" Delete_Pen:=" , Gdip_DeletePen( Pen )" FileAppend,%Temp%,%A_ScriptDir%\HB Bitmap Maker Folder\Saved Bitmaps Functions\%Name_To_Save_Files%.txt FileAppend,%Delete_Pen%,%A_ScriptDir%\HB Bitmap Maker Folder\Saved Bitmaps Functions\%Name_To_Save_Files%.txt Delete_Pen:="" Temp:="" } } Draw_Rounded_Rectangle(index,Save_Flag:=0){ This.Create_Pen(Index,Save_Flag) if(Save_Flag=0){ Gdip_DrawRoundedRectangle(This.Bitmap_G,This.Pen1,This.Bitmap_Elements[index].X,This.Bitmap_Elements[index].Y,This.Bitmap_Elements[index].W,This.Bitmap_Elements[index].H, This.Bitmap_Elements[index].Radius) Gdip_DeletePen(This.Pen1) This.Move() }else if(Save_Flag=1){ Temp:=" , Gdip_DrawRoundedRectangle( G , Pen , " This.Bitmap_Elements[index].X " , " This.Bitmap_Elements[index].Y " , " This.Bitmap_Elements[index].W " , " This.Bitmap_Elements[index].H " , " This.Bitmap_Elements[index].Radius " )" Delete_Pen:=" , Gdip_DeletePen( Pen )" FileAppend,%Temp%,%A_ScriptDir%\HB Bitmap Maker Folder\Saved Bitmaps Functions\%Name_To_Save_Files%.txt FileAppend,%Delete_Pen%,%A_ScriptDir%\HB Bitmap Maker Folder\Saved Bitmaps Functions\%Name_To_Save_Files%.txt Delete_Pen:="" Temp:="" } } Draw_Circle(index,Save_Flag:=0){ This.Create_Pen(Index,Save_Flag) if(Save_Flag=0){ Gdip_DrawEllipse(This.Bitmap_G,This.Pen1,This.Bitmap_Elements[index].X,This.Bitmap_Elements[index].Y,This.Bitmap_Elements[index].W,This.Bitmap_Elements[index].H) Gdip_DeletePen(This.Pen1) This.Move() }else if(Save_Flag=1){ Temp:=" , Gdip_DrawEllipse( G , Pen , " This.Bitmap_Elements[index].X " , " This.Bitmap_Elements[index].Y " , " This.Bitmap_Elements[index].W " , " This.Bitmap_Elements[index].H " )" Delete_Pen:=" , Gdip_DeletePen( Pen )" FileAppend,%Temp%,%A_ScriptDir%\HB Bitmap Maker Folder\Saved Bitmaps Functions\%Name_To_Save_Files%.txt FileAppend,%Delete_Pen%,%A_ScriptDir%\HB Bitmap Maker Folder\Saved Bitmaps Functions\%Name_To_Save_Files%.txt Delete_Pen:="" Temp:="" } } Draw_Line(index,Save_Flag:=0){ This.Create_Pen(Index,Save_Flag) if(Save_Flag=0){ Gdip_DrawLine(This.Bitmap_G,This.Pen1,This.Bitmap_Elements[index].X,This.Bitmap_Elements[index].Y,This.Bitmap_Elements[index].X2,This.Bitmap_Elements[index].Y2) Gdip_DeletePen(This.Pen1) This.Move() }else if(Save_Flag=1){ Temp:=" , Gdip_DrawLine( G , Pen , " This.Bitmap_Elements[index].X " , " This.Bitmap_Elements[index].Y " , " This.Bitmap_Elements[index].X2 " , " This.Bitmap_Elements[index].Y2 " )" Delete_Pen:=" , Gdip_DeletePen( Pen )" FileAppend,%Temp%,%A_ScriptDir%\HB Bitmap Maker Folder\Saved Bitmaps Functions\%Name_To_Save_Files%.txt FileAppend,%Delete_Pen%,%A_ScriptDir%\HB Bitmap Maker Folder\Saved Bitmaps Functions\%Name_To_Save_Files%.txt Delete_Pen:="" Temp:="" } } Draw_Lines(index,Save_Flag:=0){ This.Create_Pen(Index,Save_Flag) if(Save_Flag=0){ Gdip_DrawLines(This.Bitmap_G,This.Pen1,This.Bitmap_Elements[index].Lines_List) Gdip_DeletePen(This.Pen1) This.Move() }else if(Save_Flag=1){ Temp:=" , Gdip_DrawLines( G , Pen , """ This.Bitmap_Elements[index].Lines_List """ )" Delete_Pen:=" , Gdip_DeletePen( Pen )" FileAppend,%Temp%,%A_ScriptDir%\HB Bitmap Maker Folder\Saved Bitmaps Functions\%Name_To_Save_Files%.txt FileAppend,%Delete_Pen%,%A_ScriptDir%\HB Bitmap Maker Folder\Saved Bitmaps Functions\%Name_To_Save_Files%.txt Delete_Pen:="" Temp:="" } } Draw_Arc(index,Save_Flag:=0){ This.Create_Pen(Index,Save_Flag) if(Save_Flag=0){ Gdip_DrawArc(This.Bitmap_G,This.Pen1,This.Bitmap_Elements[index].X,This.Bitmap_Elements[index].Y,This.Bitmap_Elements[index].W,This.Bitmap_Elements[index].H, This.Bitmap_Elements[index].Start_Angle, This.Bitmap_Elements[index].End_Angle) Gdip_DeletePen(This.Pen1) This.Move() }else if(Save_Flag=1){ Temp:=" , Gdip_DrawArc( G , Pen , " This.Bitmap_Elements[index].X " , " This.Bitmap_Elements[index].Y " , " This.Bitmap_Elements[index].W " , " This.Bitmap_Elements[index].H " , " This.Bitmap_Elements[index].Start_Angle " , " This.Bitmap_Elements[index].End_Angle " )" Delete_Pen:=" , Gdip_DeletePen( Pen )" FileAppend,%Temp%,%A_ScriptDir%\HB Bitmap Maker Folder\Saved Bitmaps Functions\%Name_To_Save_Files%.txt FileAppend,%Delete_Pen%,%A_ScriptDir%\HB Bitmap Maker Folder\Saved Bitmaps Functions\%Name_To_Save_Files%.txt Delete_Pen:="" Temp:="" } } Draw_Pie(index,Save_Flag:=0){ This.Create_Pen(Index,Save_Flag) if(Save_Flag=0){ Gdip_DrawPie(This.Bitmap_G,This.Pen1,This.Bitmap_Elements[index].X,This.Bitmap_Elements[index].Y,This.Bitmap_Elements[index].W,This.Bitmap_Elements[index].H, This.Bitmap_Elements[index].Start_Angle, This.Bitmap_Elements[index].End_Angle) Gdip_DeletePen(This.Pen1) This.Move() }else if(Save_Flag=1){ Temp:=" , Gdip_DrawPie( G , Pen , " This.Bitmap_Elements[index].X " , " This.Bitmap_Elements[index].Y " , " This.Bitmap_Elements[index].W " , " This.Bitmap_Elements[index].H " , " This.Bitmap_Elements[index].Start_Angle " , " This.Bitmap_Elements[index].End_Angle " )" Delete_Pen:=" , Gdip_DeletePen( Pen )" FileAppend,%Temp%,%A_ScriptDir%\HB Bitmap Maker Folder\Saved Bitmaps Functions\%Name_To_Save_Files%.txt FileAppend,%Delete_Pen%,%A_ScriptDir%\HB Bitmap Maker Folder\Saved Bitmaps Functions\%Name_To_Save_Files%.txt Delete_Pen:="" Temp:="" } } Draw_Bezier(index,Save_Flag:=0){ This.Create_Pen(Index,Save_Flag) if(Save_Flag=0){ Gdip_DrawBezier(This.Bitmap_G,This.Pen1,This.Bitmap_Elements[index].X,This.Bitmap_Elements[index].Y, This.Bitmap_Elements[index].x2, This.Bitmap_Elements[index].y2, This.Bitmap_Elements[index].x3, This.Bitmap_Elements[index].y3, This.Bitmap_Elements[index].x4, This.Bitmap_Elements[index].y4) Gdip_DeletePen(This.Pen1) This.Move() }else if(Save_Flag=1){ Temp:=" , Gdip_DrawBezier( G , Pen , " This.Bitmap_Elements[index].X " , " This.Bitmap_Elements[index].Y " , " This.Bitmap_Elements[index].x2 " , " This.Bitmap_Elements[index].y2 " , " This.Bitmap_Elements[index].x3 " , " This.Bitmap_Elements[index].y3 " , " This.Bitmap_Elements[index].x4 " , " This.Bitmap_Elements[index].y4 " )" Delete_Pen:=" , Gdip_DeletePen( Pen )" FileAppend,%Temp%,%A_ScriptDir%\HB Bitmap Maker Folder\Saved Bitmaps Functions\%Name_To_Save_Files%.txt FileAppend,%Delete_Pen%,%A_ScriptDir%\HB Bitmap Maker Folder\Saved Bitmaps Functions\%Name_To_Save_Files%.txt Delete_Pen:="" Temp:="" } } } ;%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% ; Bitmap Control Panel Class ;%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% class Bitmap_Info_Control_Panel { Create_Bitmap_Control_Panel(){ Gui,17:Destroy Gui,17:+Parent16 -Caption +AlwaysOnTop -DPIScale Gui,17:Color,333333,444444 Gui,17:Font,cWhite s8 q5, Segoe UI } Show_Bitmap_Control_Panel(){ Gui,17:Show,x3 y3 w346 h197 } Bitmap_Position_Controls(){ global Gui,17:Add,Button,x45 y10 w60 h25 -Theme Disabled vBit_Up gMove_Bitmap,Up Gui,17:Add,Button,x10 y+5 w60 h25 -Theme Disabled vBit_Left gMove_Bitmap,Left Gui,17:Add,Button,x+10 yp w60 h25 -Theme Disabled vBit_Right gMove_Bitmap,Right Gui,17:Add,Button,x45 y+5 w60 h25 -Theme Disabled vBit_Down gMove_Bitmap,Down Gui,17:Add,Button,x210 y10 w60 h25 -Theme Disabled vBit_Minus_Height gAdjust_Bitmap_Width_Height,- Height Gui,17:Add,Button,x175 y+5 w60 h25 -Theme Disabled vBit_Minus_Width gAdjust_Bitmap_Width_Height,- Width Gui,17:Add,Button,x+10 yp w60 h25 -Theme Disabled vBit_Plus_Width gAdjust_Bitmap_Width_Height,+ Width Gui,17:Add,Button,x210 y+5 w60 h25 -Theme Disabled vBit_Plus_Height gAdjust_Bitmap_Width_Height,+ Height } Bitmap_Position_Details(obj){ global Gui,17:Add,Text,x10 y+10 w25 h20 0x200,X : Gui,17:Add,Edit,x+5 yp w40 h20 Center Disabled -E0x200 vSet_Bit_X gSubmit_17,% obj.X Gui,17:Add,Text,x+10 yp w25 h20 0x200,Y : Gui,17:Add,Edit,x+5 yp w40 h20 Center Disabled -E0x200 vSet_Bit_Y gSubmit_17,% obj.Y Gui,17:Add,Text,x+10 yp w25 h20 0x200,W : Gui,17:Add,Edit,x+5 yp w40 h20 Center Disabled -E0x200 vSet_Bit_W gSubmit_17,% obj.W Gui,17:Add,Text,x+10 yp w25 h20 0x200,H : Gui,17:Add,Edit,x+5 yp w40 h20 Center Disabled -E0x200 vSet_Bit_H gSubmit_17,% obj.H } Bitmap_Zoom(obj){ global Gui,17:Add,Text,x10 y+10 w30 h20 0x200,缩放 ;Zoom : Gui,17:Add,DDL,x+10 yp w100 r10 -Theme Disabled vZoom_Level gSubmit_17,.25|.50|.75|1.00|1.25|1.50|1.75|2.00|3.00|4.00|5.00|6.00|7.00|8.00|9.00|10.00|15.00|20.00| GuiControl,17:Choose,Zoom_Level,% Bitmap_Array[Active_Bitmap].Zoom } Bitmap_Lock(){ global Gui,17:Add,Checkbox,x140 y5 h25 vBitmap_Control_Lock gUnlock_Bitmap_Controls,解锁 ;Unlock } Bitmap_Smoothing(){ global Gui,17:Add,Text,x160 y135 w30 h20 0x200,平滑 ;Smoothing : Gui,17:Add,DDL,x+10 yp w100 r5 -Theme Disabled vBitmap_Smoothing gSubmit_17,0|1|2|3|4| GuiControl,17:Choose,Bitmap_Smoothing,% Bitmap_Array[Active_Bitmap].Smoothing+1 } } Set_LineBrush_Positions(){ isPressed:=0,Set:=0 CoordMode,Mouse,Client While(!GetKeyState("Alt")){ if(!Set&&!isPressed){ MouseGetPos,tcx,tcy tcx:=floor((tcx-Bitmap_Array[Active_Bitmap].X)/Bitmap_Array[Active_Bitmap].Zoom) tcy:=floor((tcy-(Bitmap_Array[Active_Bitmap].Y+40))/Bitmap_Array[Active_Bitmap].Zoom) 原文 := "Press ""Shift"" to set a position`nPress ""ctrl"" to switch between sets`nPress ""Alt"" to finish`nCurrent Set: " 汉化 := "按下 Shift 设置位置`n按下 Ctrl 在组之间切换`n按下 Alt 退出`n 当前设置: " ToolTip,% 汉化 Set+1 "`nX1: " tcx " Y1: " tcy if(GetKeyState("Shift")&&!isPressed){ isPressed:=1 Bitmap_Array[Active_Bitmap].BitMap_Elements[Active_Element].Line_Brush_X1:=tcx Bitmap_Array[Active_Bitmap].BitMap_Elements[Active_Element].Line_Brush_Y1:=tcy GuiControl,14:,Line_Brush_X1,% Bitmap_Array[Active_Bitmap].BitMap_Elements[Active_Element].Line_Brush_X1 GuiControl,14:,Line_Brush_Y1,% Bitmap_Array[Active_Bitmap].BitMap_Elements[Active_Element].Line_Brush_Y1 }else if(GetKeyState("ctrl")&&!isPressed){ isPressed:=1 Set:=1 } }else if(Set&&!isPressed){ MouseGetPos,tcx,tcy tcx:=floor((tcx-Bitmap_Array[Active_Bitmap].X)/Bitmap_Array[Active_Bitmap].Zoom) tcy:=floor((tcy-(Bitmap_Array[Active_Bitmap].Y+40))/Bitmap_Array[Active_Bitmap].Zoom) 原文 := "Press ""Shift"" to set a position`nPress ""ctrl"" to switch between sets`nPress ""Alt"" to finish`nCurrent Set: " 汉化 := "按下 Shift 设置位置`n按下 Ctrl 在组之间切换`n按下 Alt 退出`n 当前设置: " ToolTip,% 汉化 Set+1 "`nX2: " tcx " Y2: " tcy if(GetKeyState("Shift")&&!isPressed){ isPressed:=1 Bitmap_Array[Active_Bitmap].BitMap_Elements[Active_Element].Line_Brush_X2:=tcx Bitmap_Array[Active_Bitmap].BitMap_Elements[Active_Element].Line_Brush_Y2:=tcy GuiControl,14:,Line_Brush_X2,% Bitmap_Array[Active_Bitmap].BitMap_Elements[Active_Element].Line_Brush_X2 GuiControl,14:,Line_Brush_Y2,% Bitmap_Array[Active_Bitmap].BitMap_Elements[Active_Element].Line_Brush_Y2 }else if(GetKeyState("ctrl")&&!isPressed){ isPressed:=1 Set:=0 } }else if(isPressed&&!GetKeyState("Shift")&&!GetKeyState("ctrl")){ isPressed:=0 } if(GetKeyState("Up")) MouseMove,0,-1,,R else if(GetKeyState("Down")) MouseMove,0,1,,R else if(GetKeyState("Left")) MouseMove,-1,0,,R else if(GetKeyState("Right")) MouseMove,1,0,,R } ToolTip, } Set_GradeBrush_Positions(){ isPressed:=0,Set:=0 CoordMode,Mouse,Client While(!GetKeyState("Alt")){ if(!Set&&!isPressed){ MouseGetPos,tcx,tcy tcx:=floor((tcx-Bitmap_Array[Active_Bitmap].X)/Bitmap_Array[Active_Bitmap].Zoom) tcy:=floor((tcy-(Bitmap_Array[Active_Bitmap].Y+40))/Bitmap_Array[Active_Bitmap].Zoom) 原文 := "Press ""Shift"" to set a position`nPress ""ctrl"" to switch between sets`nPress ""Alt"" to finish`nCurrent Set: " 汉化 := "按下 Shift 设置位置`n按下 Ctrl 在组之间切换`n按下 Alt 退出`n 当前设置: " ToolTip,% 汉化 Set+1 "`nX: " tcx " Y: " tcy if(GetKeyState("Shift")&&!isPressed){ isPressed:=1 Bitmap_Array[Active_Bitmap].BitMap_Elements[Active_Element].Grade_Brush_X:=tcx Bitmap_Array[Active_Bitmap].BitMap_Elements[Active_Element].Grade_Brush_Y:=tcy GuiControl,14:,Grade_Brush_X,% Bitmap_Array[Active_Bitmap].BitMap_Elements[Active_Element].Grade_Brush_X GuiControl,14:,Grade_Brush_Y,% Bitmap_Array[Active_Bitmap].BitMap_Elements[Active_Element].Grade_Brush_Y }else if(GetKeyState("ctrl")&&!isPressed){ isPressed:=1 Set:=1 } }else if(Set&&!isPressed){ MouseGetPos,tcx,tcy tcx:=floor((tcx-(Bitmap_Array[Active_Bitmap].X+Bitmap_Array[Active_Bitmap].BitMap_Elements[Active_Element].Grade_Brush_X))/Bitmap_Array[Active_Bitmap].Zoom) tcy:=floor((tcy-(Bitmap_Array[Active_Bitmap].Y+40+Bitmap_Array[Active_Bitmap].BitMap_Elements[Active_Element].Grade_Brush_Y))/Bitmap_Array[Active_Bitmap].Zoom) 原文 := "Press ""Shift"" to set a position`nPress ""ctrl"" to switch between sets`nPress ""Alt"" to finish`nCurrent Set: " 汉化 := "按下 Shift 设置位置`n按下 Ctrl 在组之间切换`n按下 Alt 退出`n 当前设置: " ToolTip,% 汉化 Set+1 "`nW: " tcx " H: " tcy if(GetKeyState("Shift")&&!isPressed){ isPressed:=1 Bitmap_Array[Active_Bitmap].BitMap_Elements[Active_Element].Grade_Brush_W:=tcx Bitmap_Array[Active_Bitmap].BitMap_Elements[Active_Element].Grade_Brush_H:=tcy GuiControl,14:,Grade_Brush_W,% Bitmap_Array[Active_Bitmap].BitMap_Elements[Active_Element].Grade_Brush_W GuiControl,14:,Grade_Brush_H,% Bitmap_Array[Active_Bitmap].BitMap_Elements[Active_Element].Grade_Brush_H }else if(GetKeyState("ctrl")&&!isPressed){ isPressed:=1 Set:=0 } }else if(isPressed&&!GetKeyState("Shift")&&!GetKeyState("ctrl")){ isPressed:=0 } if(GetKeyState("Up")) MouseMove,0,-1,,R else if(GetKeyState("Down")) MouseMove,0,1,,R else if(GetKeyState("Left")) MouseMove,-1,0,,R else if(GetKeyState("Right")) MouseMove,1,0,,R } ToolTip, } Adjust_Bitmap_Width_Height(){ if(A_GuiControl="Bit_Minus_Width"){ if(GetKeyState("Shift")&&Bitmap_Array[Active_Bitmap].W>10){ Bitmap_Array[Active_Bitmap].W-=10 }else if(Bitmap_Array[Active_Bitmap].W>1){ Bitmap_Array[Active_Bitmap].W-=1 } }else if(A_GuiControl="Bit_Plus_Width"){ if(GetKeyState("Shift")){ Bitmap_Array[Active_Bitmap].W+=10 }else { Bitmap_Array[Active_Bitmap].W+=1 } }else if(A_GuiControl="Bit_Minus_Height"){ if(GetKeyState("Shift")&&Bitmap_Array[Active_Bitmap].H>10){ Bitmap_Array[Active_Bitmap].H-=10 }else if(Bitmap_Array[Active_Bitmap].H>1){ Bitmap_Array[Active_Bitmap].H-=1 } }else if(A_GuiControl="Bit_Plus_Height"){ if(GetKeyState("Shift")){ Bitmap_Array[Active_Bitmap].H+=10 }else { Bitmap_Array[Active_Bitmap].H+=1 } } GuiControl,4:Move,% Bitmap_Array[Active_Bitmap].Name,% "w" Bitmap_Array[Active_Bitmap].W*Bitmap_Array[Active_Bitmap].Zoom " h" Bitmap_Array[Active_Bitmap].H*Bitmap_Array[Active_Bitmap].Zoom GuiControl,17:,Set_Bit_H,% Bitmap_Array[Active_Bitmap].H GuiControl,17:,Set_Bit_W,% Bitmap_Array[Active_Bitmap].W Bitmap_Array[Active_Bitmap].Zoom_Bitmap() if(Auto_Draw){ SetTimer,Force_Draw,-10 } Loop,% Bitmap_Array.Length() Bitmap_Array[A_Index].move() } Move_Bitmap(){ if(A_GuiControl="Bit_Up"){ if(GetKeyState("Shift")){ Bitmap_Array[Active_Bitmap].Y-=10 }else { Bitmap_Array[Active_Bitmap].Y-=1 } }else if(A_GuiControl="Bit_Left"){ if(GetKeyState("Shift")){ Bitmap_Array[Active_Bitmap].X-=10 }else { Bitmap_Array[Active_Bitmap].X-=1 } }else if(A_GuiControl="Bit_Right"){ if(GetKeyState("Shift")){ Bitmap_Array[Active_Bitmap].X+=10 }else { Bitmap_Array[Active_Bitmap].X+=1 } }else if(A_GuiControl="Bit_Down"){ if(GetKeyState("Shift")){ Bitmap_Array[Active_Bitmap].Y+=10 }else { Bitmap_Array[Active_Bitmap].Y+=1 } } GuiControl,4:Move,% Bitmap_Array[Active_Bitmap].Name,% "x" Bitmap_Array[Active_Bitmap].X " y" Bitmap_Array[Active_Bitmap].Y GuiControl,17:,Set_Bit_X,% Bitmap_Array[Active_Bitmap].X GuiControl,17:,Set_Bit_Y,% Bitmap_Array[Active_Bitmap].Y Loop,% Bitmap_Array.Length() Bitmap_Array[A_Index].move() if(Auto_Draw){ SetTimer,Force_Draw,-10 } } RePosition_Polygon_Element(){ ; ToolTip,Here } Add_New_Polygon_Point(){ isPressed:="" CoordMode,Mouse,Client While(!GetKeyState("ctrl")){ MouseGetPos,polyX,polyY 原文 := "Move your cursor to where you want to add the point and then press ""Shift"" `nPress ""Ctrl"" To Finish`n" 汉化 := "将光标移动到要添加点的位置,然后按下 Shift`n按下 Ctrl 退出`n" ToolTip,% 汉化 floor((polyX-Bitmap_Array[Active_Bitmap].X)/Bitmap_Array[Active_Bitmap].Zoom) "`n" floor((polyY-(Bitmap_Array[Active_Bitmap].Y+40))/Bitmap_Array[Active_Bitmap].Zoom) If(GetKeyState("Shift")&&!isPressed){ isPressed:=1 MouseGetPos,polyX,polyY polyX-=Bitmap_Array[Active_Bitmap].X polyY-=(Bitmap_Array[Active_Bitmap].Y+40) polyX:=floor(polyX/Bitmap_Array[Active_Bitmap].Zoom) polyY:=floor(polyY/Bitmap_Array[Active_Bitmap].Zoom) Bitmap_Array[Active_Bitmap].BitMap_Elements[Active_Element].Polygon_List.=polyX "," polyY "|" GuiControl,13:,Polygon_List,% Bitmap_Array[Active_Bitmap].BitMap_Elements[Active_Element].Polygon_List }else if(!GetKeyState("Shift")&&isPressed){ isPressed:=0 } if(GetKeyState("Up")) MouseMove,0,-1,,R else if(GetKeyState("Down")) MouseMove,0,1,,R else if(GetKeyState("Left")) MouseMove,-1,0,,R else if(GetKeyState("Right")) MouseMove,1,0,,R } ToolTip, GuiControl,13:,Polygon_List,% Bitmap_Array[Active_Bitmap].BitMap_Elements[Active_Element].Polygon_List } Add_New_Lines_Point(){ isPressed:="" CoordMode,Mouse,Client While(!GetKeyState("ctrl")){ MouseGetPos,polyX,polyY 原文 := "Move your cursor to where you want to add the point and then press ""Shift"" `nPress ""Ctrl"" To Finish`n" 汉化 := "将光标移动到要添加点的位置,然后按下 Shift`n按下 Ctrl 退出`n" ToolTip,% 汉化 floor((polyX-Bitmap_Array[Active_Bitmap].X)/Bitmap_Array[Active_Bitmap].Zoom) "`n" floor((polyY-(Bitmap_Array[Active_Bitmap].Y+40))/Bitmap_Array[Active_Bitmap].Zoom) If(GetKeyState("Shift")&&!isPressed){ isPressed:=1 MouseGetPos,polyX,polyY polyX-=Bitmap_Array[Active_Bitmap].X polyY-=(Bitmap_Array[Active_Bitmap].Y+40) polyX:=floor(polyX/Bitmap_Array[Active_Bitmap].Zoom) polyY:=floor(polyY/Bitmap_Array[Active_Bitmap].Zoom) Bitmap_Array[Active_Bitmap].BitMap_Elements[Active_Element].Lines_List.=polyX "," polyY "|" GuiControl,13:,Lines_List,% Bitmap_Array[Active_Bitmap].BitMap_Elements[Active_Element].Lines_List }else if(!GetKeyState("Shift")&&isPressed){ isPressed:=0 } if(GetKeyState("Up")) MouseMove,0,-1,,R else if(GetKeyState("Down")) MouseMove,0,1,,R else if(GetKeyState("Left")) MouseMove,-1,0,,R else if(GetKeyState("Right")) MouseMove,1,0,,R } ToolTip, GuiControl,13:,Polygon_List,% Bitmap_Array[Active_Bitmap].BitMap_Elements[Active_Element].Polygon_List } Clear_Points(){ Bitmap_Array[Active_Bitmap].BitMap_Elements[Active_Element].Lines_List:="" Bitmap_Array[Active_Bitmap].BitMap_Elements[Active_Element].Polygon_List:="" GuiControl,13:,Lines_List,% Bitmap_Array[Active_Bitmap].BitMap_Elements[Active_Element].Lines_List GuiControl,13:,Polygon_List,% Bitmap_Array[Active_Bitmap].BitMap_Elements[Active_Element].Polygon_List } Unlock_Bitmap_Controls(){ GuiControlGet,Bitmap_Control_Lock,17:,Bitmap_Control_Lock if(Bitmap_Control_Lock){ Guicontrol,17:Enable,Bit_Up Guicontrol,17:Enable,Bit_Down Guicontrol,17:Enable,Bit_Left Guicontrol,17:Enable,Bit_Right Guicontrol,17:Enable,Bit_Minus_Width Guicontrol,17:Enable,Bit_Plus_Width Guicontrol,17:Enable,Bit_Minus_Height Guicontrol,17:Enable,Bit_Plus_Height Guicontrol,17:Enable,Set_Bit_W Guicontrol,17:Enable,Set_Bit_H Guicontrol,17:Enable,Set_Bit_X Guicontrol,17:Enable,Set_Bit_Y Guicontrol,17:Enable,Zoom_Level Guicontrol,17:Enable,Bitmap_Smoothing }else { Guicontrol,17:Disable,Bit_Up Guicontrol,17:Disable,Bit_Down Guicontrol,17:Disable,Bit_Left Guicontrol,17:Disable,Bit_Right Guicontrol,17:Disable,Bit_Minus_Width Guicontrol,17:Disable,Bit_Plus_Width Guicontrol,17:Disable,Bit_Minus_Height Guicontrol,17:Disable,Bit_Plus_Height Guicontrol,17:Disable,Set_Bit_W Guicontrol,17:Disable,Set_Bit_H Guicontrol,17:Disable,Set_Bit_X Guicontrol,17:Disable,Set_Bit_Y Guicontrol,17:Disable,Zoom_Level Guicontrol,17:Disable,Bitmap_Smoothing } } Submit_Defaults(){ Gui,9:Submit,NoHide For k, v in Default_Values Default_Values[k]:=%k% GuiControl,5:,New_Bitmap_X,% Default_Values.Default_Bitmap_X GuiControl,5:,New_Bitmap_Y,% Default_Values.Default_Bitmap_Y GuiControl,5:,New_Bitmap_W,% Default_Values.Default_Bitmap_W GuiControl,5:,New_Bitmap_H,% Default_Values.Default_Bitmap_H GuiControl,5:,New_Bitmap_Smoothing,% Default_Values.Default_Bitmap_Smoothing } Submit_17: Gui,17:Submit,NoHide Bitmap_Array[Active_Bitmap].X:=Set_Bit_X Bitmap_Array[Active_Bitmap].Y:=Set_Bit_Y Bitmap_Array[Active_Bitmap].W:=Set_Bit_W Bitmap_Array[Active_Bitmap].H:=Set_Bit_H Bitmap_Array[Active_Bitmap].Zoom:=Zoom_Level Bitmap_Array[Active_Bitmap].Smoothing:=Bitmap_Smoothing Bitmap_Array[Active_Bitmap].Zoom_Bitmap() GuiControl,4:Move,% Bitmap_Array[Active_Bitmap].Name,% "x" Bitmap_Array[Active_Bitmap].X " y" Bitmap_Array[Active_Bitmap].Y " w" Bitmap_Array[Active_Bitmap].W*Bitmap_Array[Active_Bitmap].Zoom " h" Bitmap_Array[Active_Bitmap].H*Bitmap_Array[Active_Bitmap].Zoom Move_Bitmap() if(Auto_Draw){ SetTimer,Force_Draw,-10 } return Dump_Name_In_Name_To_Save_Edit(){ GuiControlGet,List_Of_Existing_Saves,7:,List_Of_Existing_Saves GuiControl,7:,Name_To_Save_Files,% List_Of_Existing_Saves } Delete_Bitmap(){ GuiControlGet,List_Of_Saved_Bitmaps,6:,List_Of_Saved_Bitmaps FileDelete,%List_Of_Saved_Bitmaps%.ini FileDelete,%A_ScriptDir%\HB Bitmap Maker Folder\Saved Bitmaps Functions\%List_Of_Saved_Bitmaps%.txt Load_Saved_Bitmap_List() SoundBeep,700 TrayTip,,Done } Unlock_Delete_Bitmap(){ Unlock_Delete_Button:=!Unlock_Delete_Button if(Unlock_Delete_Button) GuiControl,6:Enable,Delete_Bitmap_Button else GuiControl,6:Disable,Delete_Bitmap_Button } Move_Graphics(){ CoordMode,Mouse,Client While(Getkeystate("LButton")){ MouseGetPos,x,y y-=40 GuiControl,4:Move,%A_GuiControl%,% "x" x " y" y Loop,% Bitmap_Array.Length() { if(Bitmap_Array[A_Index].Name=A_GuiControl){ Bitmap_Array[A_Index].X:=x Bitmap_Array[A_Index].Y:=y Loop,% Bitmap_Array.Length() Bitmap_Array[A_Index].move() break } } } Loop,% Bitmap_Array.Length() Bitmap_Array[A_Index].move() if(Bitmap_Array[Active_Bitmap].Name=A_GuiControl){ GuiControl,17:,Set_Bit_X,% Bitmap_Array[Active_Bitmap].X GuiControl,17:,Set_Bit_Y,% Bitmap_Array[Active_Bitmap].Y GuiControl,17:,Set_Bit_W,% Bitmap_Array[Active_Bitmap].W GuiControl,17:,Set_Bit_H,% Bitmap_Array[Active_Bitmap].H } } Unlock_Element_Remove(){ static ElementLock ElementLock:=!ElementLock if(ElementLock){ GuiControl,8:Enable,Element_Remove_Button }else { GuiControl,8:Disable,Element_Remove_Button } } 2GuiContextMenu(){ static Tog2 Tog2:=!Tog2 if(!Tog2) Gui,2:Show,% "x0 y0 w300 h" Windows.H else Gui,2:Show,% "x-280 y0 w300 h" Windows.H Loop,% Bitmap_Array.Length() Bitmap_Array[A_Index].move() } 3GuiContextMenu(){ static Tog3 Tog3:=!Tog3 if(!Tog3) Gui,3:Show,% "x" Windows.W-300 " y0 w300 h" Windows.H else Gui,3:Show,% "x" Windows.W-20 " y0 w300 h" Windows.H Loop,% Bitmap_Array.Length() Bitmap_Array[A_Index].move() } 11GuiContextMenu(){ static Tog11 Tog11:=!Tog11 if(!Tog11) Gui,11:Show,x780 y500 w250 h200 else Gui,11:Show,x780 y680 w250 h200 Loop,% Bitmap_Array.Length() Bitmap_Array[A_Index].move() } 16GuiContextMenu(){ static Tog16 Tog16:=!Tog16 if(!Tog16) Gui,16:Show,x320 y500 w350 h200 else Gui,16:Show,x320 y680 w350 h200 Loop,% Bitmap_Array.Length() Bitmap_Array[A_Index].move() } Swap_Tabs(){ if(A_GuiControl="Tab1"){ Gui,5:Show ;,x10 y70 w300 h500 Gui,6:Hide Gui,7:Hide GuiControl,2:+Background3399FF,Tab1_Background GuiControl,2:+Background777777,Tab2_Background GuiControl,2:+Background777777,Tab3_Background }else if(A_GuiControl="Tab2"){ Gui,5:Hide Gui,6:Show ;,x10 y70 w300 h500 Gui,7:Hide GuiControl,2:+Background777777,Tab1_Background GuiControl,2:+Background3399FF,Tab2_Background GuiControl,2:+Background777777,Tab3_Background }else if(A_GuiControl="Tab3"){ Gui,5:Hide Gui,6:Hide Gui,7:Show ;,x10 y70 w300 h500 GuiControl,2:+Background777777,Tab1_Background GuiControl,2:+Background777777,Tab2_Background GuiControl,2:+Background3399FF,Tab3_Background }else if(A_GuiControl="Tab4"){ Gui,8:Show Gui,9:Hide Gui,10:Hide ;,x10 y70 w300 h500 GuiControl,3:+Background3399FF,Tab4_Background GuiControl,3:+Background777777,Tab5_Background GuiControl,3:+Background777777,Tab6_Background }else if(A_GuiControl="Tab5"){ Gui,8:Hide Gui,9:Show Gui,10:Hide ;,x10 y70 w300 h500 GuiControl,3:+Background777777,Tab4_Background GuiControl,3:+Background3399FF,Tab5_Background GuiControl,3:+Background777777,Tab6_Background }else if(A_GuiControl="Tab6"){ Gui,8:Hide Gui,9:Hide Gui,10:Show ;,x10 y70 w300 h500 GuiControl,3:+Background777777,Tab4_Background GuiControl,3:+Background777777,Tab5_Background GuiControl,3:+Background3399FF,Tab6_Background } if(A_GuiControl="Tab1"||A_GuiControl="Tab2"||A_GuiControl="Tab3"){ GuiControl,2:+Redraw,Tab1_Text GuiControl,2:+Redraw,Tab2_Text GuiControl,2:+Redraw,Tab3_Text }else { GuiControl,3:+Redraw,Tab4_Text GuiControl,3:+Redraw,Tab5_Text GuiControl,3:+Redraw,Tab6_Text } } Change_Bitmap_Background_Color(){ Gui,5:Submit,NoHide Gui,4:Color,% BitmapBackgroundColor sleep,20 Loop,% Bitmap_Array.Length() Bitmap_Array[A_Index].move() } Add_Bitmaps_To_Bitmaps_List(){ temp_Bitmap_List:="" Loop,% Bitmap_Array.Length(){ temp_Bitmap_List.=Bitmap_Array[A_Index].Name "|" } GuiControl,1:,Active_Bitmaps_List,| GuiControl,1:,Active_Bitmaps_List,% temp_Bitmap_List } Hide_Element: Gui,13:Submit,NoHide Bitmap_Array[Active_Bitmap].Bitmap_Elements[Active_Element].Hidden:=Hide_Element Update_Element_List() GuiControl,8:Choose,Current_Elements,% Active_Element if(Auto_Draw){ SetTimer,Force_Draw,-10 } return Force_Draw(){ if(Bitmap_Array[Active_Bitmap]){ Bitmap_Array[Active_Bitmap].Create_BitMap() loop, % Bitmap_Array[Active_Bitmap].Bitmap_Elements.Length(){ if(Bitmap_Array[Active_Bitmap].Bitmap_Elements[A_Index].Hidden!=1) Bitmap_Array[Active_Bitmap][Bitmap_Array[Active_Bitmap].Bitmap_Elements[A_Index].Type](A_Index) } Bitmap_Array[Active_Bitmap].Move() } } ;-------------------------------------------------------------------- ;-------------------------------------------------------------------- ;-------------------------------------------------------------------- ; Refactored Code Credit - Speed Master ReSize_Element: keyShift:=GetKeyState("Shift") (A_GuiControl=="Minus_Width" ) ? ( keyShift && (GetActiveElement("W")>10) ? ResizeElement(-10,0) : (GetActiveElement("W")>1) ? ResizeElement(-1, 0) ) (A_GuiControl=="Plus_Width" ) ? ( keyShift ? ResizeElement(10,0) : ResizeElement(1, 0) ) (A_GuiControl=="Minus_Height") ? ( keyShift && (GetActiveElement("H")>10) ? ResizeElement(0,-10) : (GetActiveElement("H")>1) ? ResizeElement(0, -1) ) (A_GuiControl=="Plus_Height" ) ? ( keyShift ? ResizeElement(0,10) : ResizeElement(0, 1) ) return GetActiveElement(key) { return Bitmap_Array[Active_Bitmap].Bitmap_Elements[Active_Element][key] } ResizeElement(w:=0,h:=0) { (w) ? Bitmap_Array[Active_Bitmap].Bitmap_Elements[Active_Element]["W"] +=w (h) ? Bitmap_Array[Active_Bitmap].Bitmap_Elements[Active_Element]["H"] +=h GuiControl,13:,W_Position,% Bitmap_Array[Active_Bitmap].Bitmap_Elements[Active_Element]["W"] GuiControl,13:,H_Position,% Bitmap_Array[Active_Bitmap].Bitmap_Elements[Active_Element]["H"] } RePosition_Element() { keyShift:=GetKeyState("Shift") (A_GuiControl=="Move_Up") ? ( keyShift ? MoveElement(-10,0) : MoveElement(-1, 0) ) (A_GuiControl=="Move_Down") ? ( keyShift ? MoveElement(10, 0) : MoveElement( 1, 0) ) (A_GuiControl=="Move_Left") ? ( keyShift ? MoveElement(0,-10) : MoveElement( 0,-1) ) (A_GuiControl=="Move_Right") ? ( keyShift ? MoveElement(0, 10) : MoveElement( 0, 1) ) (A_GuiControl=="Move_Up2") ? ( keyShift ? MoveElement(-10,0,2) : MoveElement(-1, 0,2) ) (A_GuiControl=="Move_Down2") ? ( keyShift ? MoveElement(10, 0,2) : MoveElement( 1, 0,2) ) (A_GuiControl=="Move_Left2") ? ( keyShift ? MoveElement(0,-10,2) : MoveElement( 0,-1,2) ) (A_GuiControl=="Move_Right2") ? ( keyShift ? MoveElement(0, 10,2) : MoveElement( 0, 1,2) ) (A_GuiControl=="Move_Up3") ? ( keyShift ? MoveElement(-10,0,3) : MoveElement(-1, 0,3) ) (A_GuiControl=="Move_Down3") ? ( keyShift ? MoveElement(10, 0,3) : MoveElement( 1, 0,3) ) (A_GuiControl=="Move_Left3") ? ( keyShift ? MoveElement(0,-10,3) : MoveElement( 0,-1,3) ) (A_GuiControl=="Move_Right3") ? ( keyShift ? MoveElement(0, 10,3) : MoveElement( 0, 1,3) ) (A_GuiControl=="Move_Up4") ? ( keyShift ? MoveElement(-10,0,4) : MoveElement(-1, 0,4) ) (A_GuiControl=="Move_Down4") ? ( keyShift ? MoveElement(10, 0,4) : MoveElement( 1, 0,4) ) (A_GuiControl=="Move_Left4") ? ( keyShift ? MoveElement(0,-10,4) : MoveElement( 0,-1,4) ) (A_GuiControl=="Move_Right4") ? ( keyShift ? MoveElement(0, 10,4) : MoveElement( 0, 1,4) ) } MoveElement(y:=0,x:=0,Enum:="") { Current_Element:=Bitmap_Array[Active_Bitmap].Bitmap_Elements[Active_Element] (y) ? Current_Element["Y" Enum] +=y (x) ? Current_Element["X" Enum] +=x GuiControl,13:,Y%Enum%_Position,% Current_Element["Y" Enum] GuiControl,13:,X%Enum%_Position,% Current_Element["X" Enum] if(Auto_Draw) SetTimer,Force_Draw,-10 } ;---------------------------------------------------------------------------- ;---------------------------------------------------------------------------- ;---------------------------------------------------------------------------- ;NEW HOTKEYS - Submitted By: Speed Master #IfWinActive HB Bitmap Maker up::MoveElement(-1,0), (GetActiveElement("type")="Draw_Line" || GetActiveElement("type")="Draw_Bezier") ? MoveElement(-1,0,2), MoveElement(-1,0,3), MoveElement(-1,0,4) down::MoveElement(1,0), (GetActiveElement("type")="Draw_Line" || GetActiveElement("type")="Draw_Bezier") ? MoveElement(1,0,2), MoveElement(1,0,3), MoveElement(1,0,4) left::MoveElement(0,-1), (GetActiveElement("type")="Draw_Line" || GetActiveElement("type")="Draw_Bezier") ? MoveElement(0,-1,2), MoveElement(0,-1,3), MoveElement(0,-1,4) right::MoveElement(0,1), (GetActiveElement("type")="Draw_Line" || GetActiveElement("type")="Draw_Bezier") ? MoveElement(0,1,2), MoveElement(0,1,3), MoveElement(0,1,4) +up::MoveElement(-10,0), (GetActiveElement("type")="Draw_Line" || GetActiveElement("type")="Draw_Bezier") ? MoveElement(-10,0,2), MoveElement(-10,0,3), MoveElement(-10,0,4) +down::MoveElement(10,0), (GetActiveElement("type")="Draw_Line" || GetActiveElement("type")="Draw_Bezier") ? MoveElement(10,0,2), MoveElement(10,0,3), MoveElement(10,0,4) +left::MoveElement(0,-10), (GetActiveElement("type")="Draw_Line" || GetActiveElement("type")="Draw_Bezier") ? MoveElement(0,-10,2), MoveElement(0,-10,3), MoveElement(0,-10,4) +right::MoveElement(0,10), (GetActiveElement("type")="Draw_Line" || GetActiveElement("type")="Draw_Bezier") ? MoveElement(0,10,2), MoveElement(0,10,3), MoveElement(0,10,4) ^up::(GetActiveElement("type")="Draw_Line") ? MoveElement(-1,0) : (GetActiveElement("H")>1) ? ResizeElement(0,-1) ^down::(GetActiveElement("type")="Draw_Line") ? MoveElement(1,0) : ResizeElement(0,1) ^left::(GetActiveElement("type")="Draw_Line") ? MoveElement(0,-1) : (GetActiveElement("w")>1) ? ResizeElement(-1,0) ^right::(GetActiveElement("type")="Draw_Line") ? MoveElement(0,1) : ResizeElement(1,0) ^+up::(GetActiveElement("H")>10) ? ResizeElement(0,-10) : (GetActiveElement("H")>1) ? ResizeElement(0,-1) ^+down::ResizeElement(0,10) ^+left::(GetActiveElement("w")>10) ? ResizeElement(-10,0) : (GetActiveElement("W")>1) ? ResizeElement(-1,0) ^+right::ResizeElement(10,0) #up::(GetActiveElement("type")="Draw_Line") ? MoveElement(-1,0,2) #down::(GetActiveElement("type")="Draw_Line") ? MoveElement(1,0,2) #left::(GetActiveElement("type")="Draw_Line") ? MoveElement(0,-1,2) #right::(GetActiveElement("type")="Draw_Line") ? MoveElement(0,1,2) ^d::Clone_Element() #If ; end ;End of - Speed Master Code Section ;--------------------------------------------------------------------- ;--------------------------------------------------------------------- ;--------------------------------------------------------------------- Set_Color_1(){ CoordMode,Mouse,Screen CoordMode,Pixel,Screen While(!GetKeyState("ctrl")){ ; ToolTip, hover over color and press "ctrl" ToolTip, 将鼠标悬停在颜色上并按 Ctrl } ToolTip, MouseGetPos,xt,yt PixelGetColor,Color,xt,yt,RGB CoordMode,Mouse,Client StringTrimLeft,Color,Color,2 GuiControl,14:,Color,% Color } Set_Color_2(){ CoordMode,Mouse,Screen CoordMode,Pixel,Screen While(!GetKeyState("ctrl")){ ; ToolTip, hover over color and press "ctrl" ToolTip, 将鼠标悬停在颜色上并按 Ctrl } ToolTip, MouseGetPos,xt,yt PixelGetColor,Color2,xt,yt,RGB CoordMode,Mouse,Client StringTrimLeft,Color2,Color2,2 GuiControl,14:,Color2,% Color2 } ;Submit element values ;&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& Submit_13: Gui,13:Submit,NoHide Gui,14:Submit,NoHide Bitmap_Array[Active_Bitmap].Bitmap_Elements[Active_Element].X:=X_Position Bitmap_Array[Active_Bitmap].Bitmap_Elements[Active_Element].Y:=Y_Position Bitmap_Array[Active_Bitmap].Bitmap_Elements[Active_Element].W:=W_Position Bitmap_Array[Active_Bitmap].Bitmap_Elements[Active_Element].H:=H_Position Bitmap_Array[Active_Bitmap].Bitmap_Elements[Active_Element].Notes:=Notes Bitmap_Array[Active_Bitmap].Bitmap_Elements[Active_Element].Alpha:=Alpha Bitmap_Array[Active_Bitmap].Bitmap_Elements[Active_Element].Color:=Color Bitmap_Array[Active_Bitmap].Bitmap_Elements[Active_Element].X2:=X2_Position Bitmap_Array[Active_Bitmap].Bitmap_Elements[Active_Element].Y2:=Y2_Position Bitmap_Array[Active_Bitmap].Bitmap_Elements[Active_Element].X3:=X3_Position Bitmap_Array[Active_Bitmap].Bitmap_Elements[Active_Element].Y3:=Y3_Position Bitmap_Array[Active_Bitmap].Bitmap_Elements[Active_Element].X4:=X4_Position Bitmap_Array[Active_Bitmap].Bitmap_Elements[Active_Element].Y4:=Y4_Position Bitmap_Array[Active_Bitmap].Bitmap_Elements[Active_Element].Radius:=Radius Bitmap_Array[Active_Bitmap].Bitmap_Elements[Active_Element].Thickness:=Thickness Bitmap_Array[Active_Bitmap].Bitmap_Elements[Active_Element].Text:=Text Bitmap_Array[Active_Bitmap].Bitmap_Elements[Active_Element].Options:=Options Bitmap_Array[Active_Bitmap].Bitmap_Elements[Active_Element].Font:=Font Bitmap_Array[Active_Bitmap].Bitmap_Elements[Active_Element].Start_Angle:=Start_Angle Bitmap_Array[Active_Bitmap].Bitmap_Elements[Active_Element].End_Angle:=End_Angle Bitmap_Array[Active_Bitmap].Bitmap_Elements[Active_Element].Polygon_List:=Polygon_List Bitmap_Array[Active_Bitmap].Bitmap_Elements[Active_Element].Lines_List:=Lines_List Bitmap_Array[Active_Bitmap].Bitmap_Elements[Active_Element].SourceX := Sx Bitmap_Array[Active_Bitmap].Bitmap_Elements[Active_Element].SourceY := Sy Bitmap_Array[Active_Bitmap].Bitmap_Elements[Active_Element].SourceW := Sw Bitmap_Array[Active_Bitmap].Bitmap_Elements[Active_Element].SourceH := Sh Bitmap_Array[Active_Bitmap].Bitmap_Elements[Active_Element].Brush_Type:=Brush_Type if(Bitmap_Array[Active_Bitmap].Bitmap_Elements[Active_Element].Brush_Type=2){ Bitmap_Array[Active_Bitmap].Bitmap_Elements[Active_Element].Hatch:=Hatch Bitmap_Array[Active_Bitmap].Bitmap_Elements[Active_Element].Alpha2:=Alpha2 Bitmap_Array[Active_Bitmap].Bitmap_Elements[Active_Element].Color2:=Color2 } if(Bitmap_Array[Active_Bitmap].Bitmap_Elements[Active_Element].Brush_Type=3){ Bitmap_Array[Active_Bitmap].Bitmap_Elements[Active_Element].Line_Brush_X1:=Line_Brush_X1 Bitmap_Array[Active_Bitmap].Bitmap_Elements[Active_Element].Line_Brush_Y1:=Line_Brush_Y1 Bitmap_Array[Active_Bitmap].Bitmap_Elements[Active_Element].Line_Brush_X2:=Line_Brush_X2 Bitmap_Array[Active_Bitmap].Bitmap_Elements[Active_Element].Line_Brush_Y2:=Line_Brush_Y2 Bitmap_Array[Active_Bitmap].Bitmap_Elements[Active_Element].Line_Brush_Wrap_Mode:=Line_Brush_Wrap_Mode Bitmap_Array[Active_Bitmap].Bitmap_Elements[Active_Element].Alpha2:=Alpha2 Bitmap_Array[Active_Bitmap].Bitmap_Elements[Active_Element].Color2:=Color2 } if(Bitmap_Array[Active_Bitmap].Bitmap_Elements[Active_Element].Brush_Type=4){ Bitmap_Array[Active_Bitmap].Bitmap_Elements[Active_Element].Grade_Brush_X:=Grade_Brush_X Bitmap_Array[Active_Bitmap].Bitmap_Elements[Active_Element].Grade_Brush_Y:=Grade_Brush_Y Bitmap_Array[Active_Bitmap].Bitmap_Elements[Active_Element].Grade_Brush_W:=Grade_Brush_W Bitmap_Array[Active_Bitmap].Bitmap_Elements[Active_Element].Grade_Brush_H:=Grade_Brush_H Bitmap_Array[Active_Bitmap].Bitmap_Elements[Active_Element].Grade_Brush_LinearGradientMode:=Grade_Brush_LinearGradientMode Bitmap_Array[Active_Bitmap].Bitmap_Elements[Active_Element].Grade_Brush_Wrap_Mode:=Grade_Brush_Wrap_Mode Bitmap_Array[Active_Bitmap].Bitmap_Elements[Active_Element].Alpha2:=Alpha2 Bitmap_Array[Active_Bitmap].Bitmap_Elements[Active_Element].Color2:=Color2 } if(Auto_Draw){ SetTimer,Force_Draw,-10 } return Submit_Brush_Type: Gui,13:Submit,NoHide Bitmap_Array[Active_Bitmap].Bitmap_Elements[Active_Element].Brush_Type:=Brush_Type Constructor.Create_Brush_Window(Bitmap_Array[Active_Bitmap].Bitmap_Elements[Active_Element]) if(Auto_Draw){ SetTimer,Force_Draw,-10 } return ;/* Layered_Window_SetUp(Smoothing,Window_X,Window_Y,Window_W,Window_H,Window_Name:=1,Window_Options:=""){ Layered:={} Layered.W:=Window_W Layered.H:=Window_H Layered.X:=Window_X Layered.Y:=Window_Y Layered.Name:=Window_Name Layered.Options:=Window_Options Layered.Token:=Gdip_Startup() Create_Layered_GUI(Layered) Layered.hwnd:=winExist() Layered.hbm := CreateDIBSection(Window_W,Window_H) Layered.hdc := CreateCompatibleDC() Layered.obm := SelectObject(Layered.hdc,Layered.hbm) Layered.G := Gdip_GraphicsFromHDC(Layered.hdc) Gdip_SetSmoothingMode(Layered.G,Smoothing) return Layered } Create_Layered_GUI(Layered){ Gui,% Layered.Name ": +E0x80000 +LastFound " Layered.Options Gui,% Layered.Name ":Show",% "x" Layered.X " y" Layered.Y " w" Layered.W " h" Layered.H " NA" } Layered_Window_ShutDown(This){ SelectObject(This.hdc,This.obm) DeleteObject(This.hbm) DeleteDC(This.hdc) gdip_deleteGraphics(This.g) Gdip_Shutdown(This.Token) } Gdip_RotateBitmap(pBitmap, Angle, Dispose=1) { ; returns rotated bitmap. By Learning one. Gdip_GetImageDimensions(pBitmap, Width, Height) Gdip_GetRotatedDimensions(Width, Height, Angle, RWidth, RHeight) Gdip_GetRotatedTranslation(Width, Height, Angle, xTranslation, yTranslation) pBitmap2 := Gdip_CreateBitmap(RWidth, RHeight) G2 := Gdip_GraphicsFromImage(pBitmap2), Gdip_SetSmoothingMode(G2, 4), Gdip_SetInterpolationMode(G2, 7) Gdip_TranslateWorldTransform(G2, xTranslation, yTranslation) Gdip_RotateWorldTransform(G2, Angle) Gdip_DrawImage(G2, pBitmap, 0, 0, Width, Height) Gdip_ResetWorldTransform(G2) Gdip_DeleteGraphics(G2) if Dispose Gdip_DisposeImage(pBitmap) return pBitmap2 } New_Brush(colour:="000000",Alpha:="FF"){ new_colour := "0x" Alpha colour return Gdip_BrushCreateSolid(new_colour) } New_Pen(colour:="000000",Alpha:="FF",Width:= 5){ new_colour := "0x" Alpha colour return Gdip_CreatePen(New_Colour,Width) } Fill_Box(pGraphics,pBrush,x,y,w,h) { Ptr := A_PtrSize ? "UPtr" : "UInt" return DllCall("gdiplus\GdipFillRectangle", Ptr, pGraphics, Ptr, pBrush, "float", x, "float", y, "float", w, "float", h) } Draw_Box(pGraphics, pPen, x, y, w, h){ Ptr := A_PtrSize ? "UPtr" : "UInt" return DllCall("gdiplus\GdipDrawRectangle", Ptr, pGraphics, Ptr, pPen, "float", x, "float", y, "float", w, "float", h) }
声明:站内资源为整理优化好的代码上传分享与学习研究,如果是开源代码基本都会标明出处,方便大家扩展学习路径。请不要恶意搬运,破坏站长辛苦整理维护的劳动成果。本站为爱好者分享站点,所有内容不作为商业行为。如若本站上传内容侵犯了原著者的合法权益,请联系我们进行删除下架。
评论(0)