Pixelsearch variaciones
Publicado: 09 Abr 2011, 22:19
Hola, primero que todo disculpas si esto no va en esta sección.
Hice un script para poder ver que colores estan incluidos cuando uno usa la función pixelsearch y quiere buscar variaciones de ese color buscado... El programa funciona pero estoy dudando de que lo que me muestra es correcto, osea si esos colores que veo son los que realmente el pixelsearch busca.... mirenlo y diganme...
De ultima si este script esta bien es una linda utilidad para ver colores :p
Desde ya gracias y a ver si empiezo a postear cosas como estas... que tengo varias utilidades de este tipo que fui haciendo para chekear cosas antes de agregarlas a mis proyectos...
EDIT: Funciona algo raro cuando se pone un color que alguno de sus componentes supera FF o esta por debajo de 00, si alguien me ayuda a corregir eso lo agradecería. ;)
EDIT2: Me setaba olvidando de detallar el problema, cuando uso un numero grande de variacion de color, la muestra se ve poco variada :S cuando creo que debería salir mas colorida ya que usa más colores... :S
EDIT3: Me parece que ahi va, denme sus opiniones...
Si cambian el orden en que van los colores cambia el degradee... :S me parece todo muy raro y apreciaria una mente que me ayude a entender
Hice un script para poder ver que colores estan incluidos cuando uno usa la función pixelsearch y quiere buscar variaciones de ese color buscado... El programa funciona pero estoy dudando de que lo que me muestra es correcto, osea si esos colores que veo son los que realmente el pixelsearch busca.... mirenlo y diganme...
De ultima si este script esta bien es una linda utilidad para ver colores :p
Desde ya gracias y a ver si empiezo a postear cosas como estas... que tengo varias utilidades de este tipo que fui haciendo para chekear cosas antes de agregarlas a mis proyectos...
Código: Seleccionar todo
#include <ButtonConstants.au3>
#include <EditConstants.au3>
#include <GUIConstantsEx.au3>
#include <StaticConstants.au3>
#include <WindowsConstants.au3>
#include <color.au3>
#region ### START Koda GUI section ### Form=
$Form1 = GUICreate("Form1", 342, 159, 192, 124)
$Input1 = GUICtrlCreateInput("", 176, 8, 153, 32, $ES_CENTER)
GUICtrlSetLimit(-1, 6)
GUICtrlSetFont(-1, 15, 400, 0, "MS Sans Serif")
$Input2 = GUICtrlCreateInput("", 176, 56, 33, 32, BitOR($ES_CENTER, $ES_NUMBER))
GUICtrlSetFont(-1, 15, 400, 0, "MS Sans Serif")
$Label1 = GUICtrlCreateLabel("Color en Hex", 16, 16, 116, 28)
GUICtrlSetFont(-1, 15, 400, 0, "MS Sans Serif")
$Label2 = GUICtrlCreateLabel("Variaciones", 16, 56, 103, 28)
GUICtrlSetFont(-1, 15, 400, 0, "MS Sans Serif")
$Label3 = GUICtrlCreateLabel("0X", 144, 16, 28, 28)
GUICtrlSetFont(-1, 15, 400, 0, "MS Sans Serif")
$Graphic1 = GUICtrlCreateGraphic(16, 88, 65, 57)
$Button1 = GUICtrlCreateButton("Mostrar", 224, 56, 105, 33, $WS_GROUP)
GUICtrlSetFont(-1, 15, 400, 0, "MS Sans Serif")
GUISetState(@SW_SHOW)
#endregion ### END Koda GUI section ###
Dim $mostrarcolor[250]
For $a = 0 To 249
$mostrarcolor[$a] = GUICtrlCreateLabel("", 86 + $a, 110, 1, 20)
Next
While 1
$nMsg = GUIGetMsg()
Switch $nMsg
Case $GUI_EVENT_CLOSE
Exit
Case $Button1
_mostrar()
EndSwitch
WEnd
Func _mostrar()
; Color al $Graphic1
Local $color, $colorvar, $a = 0
$color = "0x" & GUICtrlRead($Input1)
GUICtrlSetBkColor($Graphic1, $color)
; Variaciones del color a las labels $mostrarcolor[]
$colorvar = GUICtrlRead($Input2)
$rgbcolor = _ColorGetRGB($color)
$step = ($colorvar / 5) ; es dividido 5 porque 5 x 5 x 5 da 125 porque la cantidad de colores que voy a mostrar de la variacion van a ser 250 que es el doble
For $r = 1 To 5
If Hex($rgbcolor[0]) > 0x00 Then
$rgbcolor[0] = $rgbcolor[0] - Hex($step)
EndIf
For $g = 1 To 5
If Hex($rgbcolor[1]) > 0x00 Then
$rgbcolor[1] = $rgbcolor[1] - Hex($step)
EndIf
For $b = 1 To 5
If Hex($rgbcolor[2]) > 0x00 Then
$rgbcolor[2] = $rgbcolor[2] - Hex($step)
EndIf
GUICtrlSetBkColor($mostrarcolor[$a], _ColorSetRGB($rgbcolor))
$a += 1
Next
$rgbcolor[2] = _ColorGetBlue($color)
Next
$rgbcolor[1] = _ColorGetGreen($color)
Next
MsgBox(0, "", $a)
$rgbcolor = _ColorGetRGB($color)
For $r = 1 To 5
If Hex($rgbcolor[0]) < 0xFF Then
$rgbcolor[0] = $rgbcolor[0] + Hex($step)
EndIf
For $g = 1 To 5
If Hex($rgbcolor[1]) < 0xFF Then
$rgbcolor[1] = $rgbcolor[1] + Hex($step)
EndIf
For $b = 1 To 5
;~ msgbox(0,"",hex($rgbcolor[2]))
If Hex($rgbcolor[2]) < 0xFF Then
$rgbcolor[2] = $rgbcolor[2] + Hex($step)
EndIf
GUICtrlSetBkColor($mostrarcolor[$a], _ColorSetRGB($rgbcolor))
$a += 1
Next
$rgbcolor[2] = _ColorGetBlue($color)
Next
$rgbcolor[1] = _ColorGetGreen($color)
Next
EndFunc ;==>_mostrar
EDIT2: Me setaba olvidando de detallar el problema, cuando uso un numero grande de variacion de color, la muestra se ve poco variada :S cuando creo que debería salir mas colorida ya que usa más colores... :S
EDIT3: Me parece que ahi va, denme sus opiniones...
Código: Seleccionar todo
#include <ButtonConstants.au3>
#include <EditConstants.au3>
#include <GUIConstantsEx.au3>
#include <StaticConstants.au3>
#include <WindowsConstants.au3>
#include <color.au3>
#region ### START Koda GUI section ### Form=
$Form1 = GUICreate("Form1", 415, 160,-1, -1)
$Input1 = GUICtrlCreateInput("", 176, 8, 153, 32, $ES_CENTER)
GUICtrlSetLimit(-1, 6)
GUICtrlSetFont(-1, 15, 400, 0, "MS Sans Serif")
$Input2 = GUICtrlCreateInput("", 176, 56, 33, 32, BitOR($ES_CENTER, $ES_NUMBER))
GUICtrlSetFont(-1, 15, 400, 0, "MS Sans Serif")
$Label1 = GUICtrlCreateLabel("Color en Hex", 16, 16, 116, 28)
GUICtrlSetFont(-1, 15, 400, 0, "MS Sans Serif")
$Label2 = GUICtrlCreateLabel("Variaciones", 16, 56, 103, 28)
GUICtrlSetFont(-1, 15, 400, 0, "MS Sans Serif")
$Label3 = GUICtrlCreateLabel("0X", 144, 16, 28, 28)
GUICtrlSetFont(-1, 15, 400, 0, "MS Sans Serif")
$Graphic1 = GUICtrlCreateGraphic(340, 8, 65, 57)
$Button1 = GUICtrlCreateButton("Mostrar", 224, 56, 105, 33, $WS_GROUP)
GUICtrlSetFont(-1, 15, 400, 0, "MS Sans Serif")
GUISetState(@SW_SHOW)
#endregion ### END Koda GUI section ###
Dim $mostrarcolor[343]
For $a = 0 To 342
$mostrarcolor[$a] = GUICtrlCreateLabel("", 35 + $a, 110, 1, 20)
Next
While 1
$nMsg = GUIGetMsg()
Switch $nMsg
Case $GUI_EVENT_CLOSE
Exit
Case $Button1
_mostrar()
EndSwitch
WEnd
Func _mostrar()
; Color al $Graphic1
Local $color, $colorvar, $a = 0
$color = "0x" & GUICtrlRead($Input1)
GUICtrlSetBkColor($Graphic1, $color)
; Variaciones del color a las labels $mostrarcolor[]
$colorvar = GUICtrlRead($Input2)
$rgbcolor = _ColorGetRGB($color)
$rgbcolor[0] = $rgbcolor[0] - $colorvar
$rgbcolor[1] = $rgbcolor[1] - $colorvar
$rgbcolor[2] = $rgbcolor[2] - $colorvar
$step = ($colorvar / 7)
For $r = 1 To 7
If Hex($rgbcolor[2]) > 0x00 Then
$rgbcolor[2] = $rgbcolor[2] + int($step)
EndIf
For $g = 1 To 7
If Hex($rgbcolor[1]) > 0x00 Then
$rgbcolor[1] = $rgbcolor[1] + int($step)
EndIf
For $b = 1 To 7
If Hex($rgbcolor[0]) > 0x00 Then
$rgbcolor[0] = $rgbcolor[0] +int($step)
EndIf
GUICtrlSetBkColor($mostrarcolor[$a], _ColorSetRGB($rgbcolor))
$a += 1
Next
$rgbcolor[2] = _ColorGetBlue($color)
Next
$rgbcolor[1] = _ColorGetGreen($color)
Next
EndFunc ;==>_mostrar