Tecnología

Inicio

Cómo extraer los RGBs en VB6

La extracción de los componentes (RGB) rojo, verde y azul de un código de color en Visual Basic 6.0 (VB6) es útil al convertir formatos de datos de color entre los diferentes programas. VB6 proporciona una función de "RGB" para convertir los colores de sus componentes rojo, verde y azul en un tipo de datos numérico "Long", pero carece de cualquier función incorporada de convertir en la otra dirección. Además, los códigos de color en VB6 se almacenan utilizando el formato little endian, lo que significa bytes se almacenan en la memoria en orden inverso. Extraer valores "RGB" de códigos de color mediante la adición de una subrutina para procesar y convertir los códigos de forma automática.

Instrucciones

1 Abra el archivo de VB6 en un editor, como Microsoft Visual Studio 6.0.

2 Crear una subrutina para convertir un código de color VB6 en sus componentes rojo, verde y azul, añadiendo el código siguiente en el archivo:

Public Sub Hex2RGB (LColor como de largo, r As Byte, g As Byte, b As Byte)

Dim como secuencia HColor

n Dim As Byte

Dim como secuencia strHexVal

strHexVal = Hex $ (LColor)

strHexVal = Derecha ((strHexVal), 6)

Para n = 1 a (6 - Len (strHexVal))

HColor = HColor y "0"

Siguiente

HColor = HColor y strHexVal

r = CByte ( "& H" y enderezan $ (HColor, 2))

g = CByte ( "& H" & Mid $ (HColor, 3, 2))

b = CByte ( "& H" & Left $ (HColor, 2))

End Sub

El código de color se convierte de "largo" para "Hex" para el proceso más fácil. El "Derecho ((strHexVal), 6)" comando elimina cualquier carácter adicional al principio de la cadena como "& H". El bucle "for" añade 0 de cada personaje antes de solucionar los problemas de formato. VB6 utiliza poco endian para almacenar los valores de color para los bytes "RGB" se almacenan realmente a la inversa como "BBGGRR." El código utiliza la función "CByte" para dividir la cadena aparte para recuperar los valores de rojo, verde y azul y almacenarlos cada uno como un "byte".

3 Declarar variables, establecer un color y luego llamar a la subrutina para convertir el código de color añadiendo el siguiente código en su función:

r tenue, g, b As Byte

LColor Dim As Long

LColor = RGB (11, 200, 25)

Llame Hex2RGB (LColor, r, g, b)

4 Guarde el archivo VB6, compilar y ejecutar el programa para convertir el código de color.