Hola esta es una función que debo realizar así que la pongo como un reto para quienes estén aburridos, les cuento de que se trata, la idea es obtener el color de mascara de una imagen, como pueden ver en la siguiente
a simple vista reconocemos que es un color Magenta, lo que intentaremos es obtenerlo mediante código, para no complicar las cosas usaremos un PictureBox sin bordes (BordeStyle = none), AutoSize = True y ScaleMode = vbPixels
para obtener el color utilizaremos el api GetPixel
entonces en el picture pondremos una de las imagenes que se encuentran abajo de todo.
la imagen es una tira de iconos, nosotros debemos verificar en cada esquina de ese icono cual es el color, el color que se repita mas veces sera el color de mascara
como muestro en esta imagen
con puntos azules y rojos son los puntos donde debemos comprobar el color almacenarlo en algún array o lo que sea y luego ir sumando para al final ver cual es el que se repitio mas veces.
como son todos iconos cuadrados una ayuda para obtener el tamaño de cada icono y la cantidad de iconos
a simple vista reconocemos que es un color Magenta, lo que intentaremos es obtenerlo mediante código, para no complicar las cosas usaremos un PictureBox sin bordes (BordeStyle = none), AutoSize = True y ScaleMode = vbPixels
para obtener el color utilizaremos el api GetPixel
Código [Seleccionar]
Private Declare Function GetPixel Lib "gdi32.dll" (ByVal hdc As Long, ByVal X As Long, ByVal Y As Long) As Long
entonces en el picture pondremos una de las imagenes que se encuentran abajo de todo.
la imagen es una tira de iconos, nosotros debemos verificar en cada esquina de ese icono cual es el color, el color que se repita mas veces sera el color de mascara
como muestro en esta imagen
con puntos azules y rojos son los puntos donde debemos comprobar el color almacenarlo en algún array o lo que sea y luego ir sumando para al final ver cual es el que se repitio mas veces.
como son todos iconos cuadrados una ayuda para obtener el tamaño de cada icono y la cantidad de iconos
Código [Seleccionar]
Private Sub Form_Load()
Dim lWidth As Long
Dim lHeight As Long
Dim NumIcon As Long
lWidth = (Picture1.ScaleWidth \ Picture1.ScaleHeight)
If lWidth = 0 Then lWidth = 1
lWidth = Picture1.ScaleWidth \ lWidth
lHeight = Picture1.ScaleHeight
NumIcon = Picture1.ScaleWidth \ lWidth
Debug.Print lWidth, lHeight, NumIcon
End Sub