AutoIt简单取色器
刚开始学AUTOIT,涂鸦之作,纯属好玩,有很多BUG,有兴趣的朋友帮改改。刚学的朋友就当是一个简单的实例吧一个简单的取色器,结果可以保存到color.ini中。
[code]
#include <GUIConstants.au3>
#include <Color.au3>
#Region ### START Koda GUI section ### Form=
$Form1 = GUICreate("XYColor", 169, 233, 195, 121)
$Group1 = GUICtrlCreateGroup("当前坐标", 16, 8, 137, 57)
$Label1 = GUICtrlCreateLabel("X = ", 24, 34, 23, 17)
$Label2 = GUICtrlCreateLabel("Y = ", 88, 34, 23, 17)
$Input1 = GUICtrlCreateInput("", 48, 32, 30, 21, -1, 0)
GUICtrlSetBkColor(-1, 0xECE9D8)
GUICtrlSetState(-1, $GUI_DISABLE)
$Input2 = GUICtrlCreateInput("", 112, 32, 30, 21, -1, 0)
GUICtrlSetBkColor(-1, 0xECE9D8)
GUICtrlSetState(-1, $GUI_DISABLE)
GUICtrlCreateGroup("", -99, -99, 1, 1)
$Group2 = GUICtrlCreateGroup("RGB颜色", 16, 72, 137, 121)
$Label3 = GUICtrlCreateLabel("R:", 28, 117, 20, 15)
$Label4 = GUICtrlCreateLabel("G:", 28, 134, 20, 15)
$Label5 = GUICtrlCreateLabel("B:", 28, 151, 20, 15)
$Input3 = GUICtrlCreateInput("", 56, 117, 33, 21, -1, 0)
GUICtrlSetBkColor(-1, 0xECE9D8)
GUICtrlSetState(-1, $GUI_DISABLE)
$Input4 = GUICtrlCreateInput("", 56, 134, 33, 21, -1, 0)
GUICtrlSetBkColor(-1, 0xECE9D8)
GUICtrlSetState(-1, $GUI_DISABLE)
$Input5 = GUICtrlCreateInput("", 56, 151, 33, 21, -1, 0)
GUICtrlSetBkColor(-1, 0xECE9D8)
GUICtrlSetState(-1, $GUI_DISABLE)
$Input6 = GUICtrlCreateInput("", 106, 117, 33, 21, -1, 0)
GUICtrlSetBkColor(-1, 0xECE9D8)
GUICtrlSetState(-1, $GUI_DISABLE)
$Input7 = GUICtrlCreateInput("", 106, 134, 33, 21, -1, 0)
GUICtrlSetBkColor(-1, 0xECE9D8)
GUICtrlSetState(-1, $GUI_DISABLE)
$Input8 = GUICtrlCreateInput("", 106, 151, 33, 21, -1, 0)
GUICtrlSetBkColor(-1, 0xECE9D8)
GUICtrlSetState(-1, $GUI_DISABLE)
$Group3 = GUICtrlCreateGroup("Dec", 51, 96, 45, 80)
GUICtrlCreateGroup("", -99, -99, 1, 1)
$Group4 = GUICtrlCreateGroup("Hex", 101, 96, 45, 80)
GUICtrlCreateGroup("", -99, -99, 1, 1)
GUICtrlCreateGroup("", -99, -99, 1, 1)
$Group5 = GUICtrlCreateGroup(" 按 ALT+~ 保存到文件", 16, 200, 137, 17)
GUICtrlCreateGroup("", -99, -99, 1, 1)
GUISetState(@SW_SHOW)
#EndRegion ### END Koda GUI section ###
WinSetOnTop("XYColor","当前",1) ;;窗口置顶
HotKeySet("!`","_save") ;;激活热键 ALT+`
While 1
$nMsg = GUIGetMsg()
Switch $nMsg
Case $GUI_EVENT_CLOSE ;;如果关闭窗口
Exit
Case $GUI_EVENT_MOUSEMOVE ;;如果移动鼠标
$pos = MouseGetPos() ;;得到鼠标当前坐标
GUICtrlSetData($Input1,$pos[0]) ;; 显示X
GUICtrlSetData($Input2,$pos[1]) ;; 显示Y
$color = PixelGetColor($pos[0],$pos[1]) ;;得到当前点颜色(十进制数)
$color = Hex($color,6) ;;转换颜色值为十六进制数
$R_color_Dec = _ColorGetRed($color) ;;得到红色分量(十进制)
$G_color_Dec = _ColorGetGreen($color) ;;得到绿色分量(十进制)
$B_color_Dec = _ColorGetBlue($color) ;;得到蓝色分量(十进制)
$R_color_Hex = Hex($R_color_Dec,2) ;;转换红色分量(十六进制)
$G_color_Hex = Hex($G_color_Dec,2) ;;转换绿色分量(十六进制)
$B_color_Hex = Hex($B_color_Dec,2) ;;转换蓝色分量(十六进制)
GUICtrlSetData($Input3,$R_color_Dec) ;;显示各颜色分量
GUICtrlSetData($Input4,$G_color_Dec)
GUICtrlSetData($Input5,$B_color_Dec)
GUICtrlSetData($Input6,$R_color_Hex)
GUICtrlSetData($Input7,$G_color_Hex)
GUICtrlSetData($Input8,$B_color_Hex)
EndSwitch
WEnd
Func _save() ;;取色结果写入文件。
$time = @YEAR&"-"&@MON&]&@MON&"-"&@MDAY&" "&@HOUR&]&@HOUR&":"&@MIN&":"&@SEC ;;$time的值为 当前 年-月-日 时:分:秒
IniWrite("color.ini",$time,"XYColor",$pos[0]&","&$pos[1]&","&"RGB="&"0x"&$R_color_Hex&$G_color_Hex&$B_color_Hex)
EndFunc
[/code]
页:
[1]