colour.h

Clase wxColour

Un color es un objeto que representa una combinación de valores de intensidad rojo, verde y azul (RGB) y un valor alfa, y se utiliza para determinar los colores de dibujo.

Jerarquía:

Jerarquía de la clase wxColour

Consultar la entrada de wxColourDatabase para saber cómo se puede devolver un puntero a un color predefinido con nombre en lugar de crear un nuevo color.

Los valores RGB válidos están en el rango de 0 a 255.

Se puede recuperar la configuración actual del color del sistema con wxSystemSettings.

Funciones de acceso a canales

Obsérvese que esta clase proporciona pares de funciones para cada uno de los canales de color, es decir, los valores rojo, verde, azul y alfa. Las funciones de una palabra Red(), Green(), Blue() y Alpha() devuelven los valores de tipo unsigned char, mientras que GetRed(), GetGreen(), GetBlue() y GetAlpha() devuelven el mismo valor que unsigned int. De acuerdo con las reglas de promoción de enteros de C++, el resultado de cualquier expresión aritmética que involucre a las primeras será int (con signo), mientras que el de las segundas será unsigned, que es lo que se esperaría comúnmente, por lo que la última familia de funciones debería ser típicamente preferida (pero solo están disponibles desde wxWidgets 3.1.6).

Objetos/punteros predefinidos

  • wxNullColour - Un color vacío, inválido.
  • wxTransparentColour - Color válido pero totalmente transparente (nuevo en 2.9.1).
  • wxBLACK
  • wxBLUE
  • wxCYAN
  • wxGREEN
  • wxYELLOW
  • wxLIGHT_GREY
  • wxRED
  • wxWHITE

Eventos emitidos por esta clase

Macros para eventos emitidos por esta clase:

Funciones miembro públicas

wxColour()

wxColour::wxColour()

Constructor por defecto.

wxColour()

wxColour::wxColour( unsigned char red, unsigned char green, unsigned char blue, unsigned char alpha = wxALPHA_OPAQUE )

Parámetros
red
El valor del rojo.
green
El valor del verde.
blue
El valor del azul.
alpha
El valor alpha. Los valores alfa van de 0 (wxALPHA_TRANSPARENT) a 255 (wxALPHA_OPAQUE).
wxColour()

wxColour::wxColour(const wxString & colourName)

Parámetros
colourName
El nombre del color.
wxColour()

wxColour::wxColour(unsigned long colRGB)

Parámetros
colRGB
Un valor RGB empaquetado.
wxColour()

wxColour::wxColour(const wxColour & colour)

Constructor copia.

Alpha()

virtual unsigned char wxColour::Alpha() const

Devuelve el valor alfa, en plataformas donde alfa aún no está soportado, esto siempre devuelve wxALPHA_OPAQUE.

AlphaBlend()

static unsigned char wxColour::AlphaBlend( unsigned char fg, unsigned char bg, double alpha )

Mezclar el color, teniendo en cuenta el alfa.

Blue()

virtual unsigned char wxColour::Blue() const

Devuelve la intensidad del azul.

ChangeLightness()

wxColour wxColour::ChangeLightness(int ialpha) const

Envoltorio wxColour para ChangeLightness(r,g,b,ialpha).

ChangeLightness()

static void wxColour::ChangeLightness( unsigned char * r, unsigned char * g, unsigned char * b, int ialpha )

Función de utilidad que simplemente oscurece o aclara un color, basado en el porcentaje especificado ialpha.

ialpha de 0 haría el color completamente negro, 200 completamente blanco y 100 no cambiaría el color.

GetAlpha()

unsigned int wxColour::GetAlpha() const

Devuelve el valor alfa, en plataformas donde alfa aún no está soportado, esto siempre devuelve wxALPHA_OPAQUE.

GetAsString()

virtual wxString wxColour::GetAsString(long flags = wxC2S_NAME|wxC2S_CSS_SYNTAX) const

Convierte este color a un wxString utilizando las banderas dadas.

Las opciones soportadas son wxC2S_NAME, para obtener el nombre del color (p.e. wxColour(255,0,0) == "red"), wxC2S_CSS_SYNTAX, para obtener el color en la sintaxis "rgb(r,g,b)" o "rgba(r,g,b,a)" (p.e. wxColour(255,0,0,85) == "rgba(255,0,0,0,333"). p.e. wxColour(255,0,0,85) == "rgba(255,0,0,0.333)"), y wxC2S_HTML_SYNTAX, para obtener el color como "#" seguido de 6 dígitos hexadecimales (p.e. wxColour(255,0,0) == "#FF0000").

Esta función devuelve una cadena vacía si el color no está inicializado (véase IsOk()). En caso contrario, la cadena devuelta es siempre no vacía, pero la función afirma si el color tiene canal alfa (es decir, no es opaco) pero wxC2S_CSS_SYNTAX (que es el único que soporta alfa) no está especificado en flags.

Nota: Para colores no sólidos (es decir, no RGB) esta función devuelve "rgb(??, ?? ??)" o "#??????".

GetBlue()

unsigned int wxColour::GetBlue() const

Devuelve la intensidad del azul como unsigned int.

GetGreen()

unsigned int wxColour::GetGreen() const

Devuelve la intensidad del verde como unsigned int.

GetLuminance()

double wxColour::GetLuminance() const

Devuelve el brillo percibido del color.

Este valor se calcula mediante la fórmula simple

0,299*R + 0,587*G + 0,114*B 

con los coeficientes tomados de la fórmula de conversión RGB a YIQ y siendo R, G y B los valores de los canales de color correspondientes normalizados al rango 0..1, de modo que el valor de retorno es 0 para el negro y 1 para el blanco.

GetPixel()

wxIntPtr wxColour::GetPixel() const

Devuelve un valor de píxel que depende de la plataforma.

En Windows, devuelve un COLORREF. En X, se devuelve un valor de píxel asignado. Si el píxel no es válido (en X, no asignado), se devuelve -1.

GetRed()

unsigned int wxColour::GetRed() const

Devuelve la intensidad del rojo como unsigned int.

GetRGB()

wxUint32 wxColour::GetRGB() const

Obtiene los valores de color RGB o RGBA como un único valor de 32 bits.

El valor devuelto tiene la misma forma esperada por SetRGB() y SetRGBA().

Obsérvese que GetRGB() devuelve el valor con 0 como su byte más alto independientemente del valor realmente devuelto por Alpha(). Así, para un color totalmente opaco, el valor devuelto por GetRGBA() es 0xFFBBGGRR mientras que el de GetRGB() es 0x00BBGGRR.

GetRGBA()

wxUint32 wxColour::GetRGBA() const

Obtiene los valores de color RGB o RGBA como un único valor de 32 bits.

El valor devuelto tiene la misma forma esperada por SetRGB() y SetRGBA().

Obsérvese que GetRGB() devuelve el valor con 0 como su byte más alto independientemente del valor realmente devuelto por Alpha(). Así, para un color totalmente opaco, el valor devuelto por GetRGBA() es 0xFFBBGGRR mientras que el de GetRGB() es 0x00BBGGRR.

Green()

virtual unsigned char wxColour::Green() const

Devuelve la intensidad del verde.

IsOk()

virtual bool wxColour::IsOk() const

Devuelve true si el objeto de color es válido (el color se ha inicializado con valores RGB).

IsSolid()

virtual bool wxColour::IsSolid() const

Devuelve true si el color puede ser descrito usando valores RGB, es decir es sólido, false si es un patrón (actualmente solo es posible en macOS).

MakeDisabled()

static void wxColour::MakeDisabled( unsigned char * r, unsigned char * g, unsigned char * b, unsigned char brightness = 255 )

Crear un color desactivado (atenuado) a partir de parámetros rgb (entrada/salida).

MakeDisabled()

wxColour& wxColour::MakeDisabled(unsigned char brightness = 255)

Crea una versión desactivada de este color.

Este método modifica el objeto en su lugar y devuelve el propio objeto.

MakeGrey()

static void wxColour::MakeGrey( unsigned char * r, unsigned char * g, unsigned char * b )

Crea un color gris a partir de parámetros rgb (in/out) utilizando aritmética de enteros.

MakeGrey()

static void wxColour::MakeGrey( unsigned char * r, unsigned char * g, unsigned char * b, double weight_r, double weight_g, double weight_b )

Crea un color gris a partir de parámetros rgb (entrada/salida) utilizando aritmética de coma flotante.

Utiliza por defecto el estándar ITU-T BT.601 al convertir a YUV, donde cada píxel es igual a (R * weight_r) + (G * weight_g) + (B * weight_b).

MakeMono()

static void wxColour::MakeMono( unsigned char * r, unsigned char * g, unsigned char * b, bool on )

Asigna el mismo valor a r, g, b: 0 si on es falso, 255 en caso contrario.

Red()

virtual unsigned char wxColour::Red() const

Devuelve la intensidad del rojo.

Set()

bool wxColour::Set(const wxString & str)

Establece los valores de intensidad RGB utilizando los valores dados (primera sobrecarga), extrayéndolos del long empaquetado (segunda sobrecarga), utilizando la cadena dada (tercera sobrecarga).

Cuando se utiliza la tercera forma, Set() acepta: nombres de colores (los listados en wxColourDatabase), la sintaxis tipo CSS "rgb(r,g,b)" o "rgba(r,g,b,a)" (insensible a mayúsculas y minúsculas) y la sintaxis tipo HTML: "#" seguido de 6 dígitos hexadecimales para los componentes rojo, verde y azul.

Devuelve true si la conversión se ha realizado correctamente, false en caso contrario.

Set()

void wxColour::Set( unsigned char red, unsigned char green, unsigned char blue, unsigned char alpha = wxALPHA_OPAQUE )

Establece los valores de intensidad RGB utilizando los valores dados (primera sobrecarga), extrayéndolos del long empaquetado (segunda sobrecarga), utilizando la cadena dada (tercera sobrecarga).

Cuando se utiliza la tercera forma, Set() acepta: nombres de colores (los listados en wxColourDatabase), la sintaxis tipo CSS "rgb(r,g,b)" o "rgba(r,g,b,a)" (insensible a mayúsculas y minúsculas) y la sintaxis tipo HTML: "#" seguido de 6 dígitos hexadecimales para los componentes rojo, verde y azul.

Devuelve true si la conversión se ha realizado correctamente, false en caso contrario.

Set()

void wxColour::Set(unsigned long RGB)

Establece los valores de intensidad RGB utilizando los valores dados (primera sobrecarga), extrayéndolos del long empaquetado (segunda sobrecarga), utilizando la cadena dada (tercera sobrecarga).

Cuando se utiliza la tercera forma, Set() acepta: nombres de colores (los listados en wxColourDatabase), la sintaxis tipo CSS "rgb(r,g,b)" o "rgba(r,g,b,a)" (insensible a mayúsculas y minúsculas) y la sintaxis tipo HTML: "#" seguido de 6 dígitos hexadecimales para los componentes rojo, verde y azul.

Devuelve true si la conversión se ha realizado correctamente, false en caso contrario.

SetRGB()

void wxColour::SetRGB(wxUint32 colRGB)

Establece los valores de color RGB o RGBA a partir de un único valor de 32 bits.

Los argumentos colRGB y colRGBA deben ser de la forma 0x00BBGGRR y 0xAABBGGRR respectivamente donde 0xRR, 0xGG, 0xBB y 0xAA son los valores de los componentes rojo, verde, azul y alfa.

Obsérvese el orden de derecha a izquierda de los componentes.

SetRGBA()

void wxColour::SetRGBA(wxUint32 colRGBA )

Establece los valores de color RGB o RGBA a partir de un único valor de 32 bits.

Los argumentos colRGB y colRGBA deben ser de la forma 0x00BBGGRR y 0xAABBGGRR respectivamente donde 0xRR, 0xGG, 0xBB y 0xAA son los valores de los componentes rojo, verde, azul y alfa.

Obsérvese el orden de derecha a izquierda de los componentes.

Operadores

operator!=()

bool wxColour::operator!=(const wxColour & colour) const

Comprueba la desigualdad de dos colores comparando las intensidades individuales de rojo, verde, azul y los valores alfa.

operator=()

wxColour& wxColour::operator=(const wxColour & colour)

Aperador de asignación

operator==()

bool wxColour::operator==(const wxColour & colour) const

Comprueba la igualdad de dos colores comparando las intensidades individuales de rojo, verde, azul y los valores alfa.

Métodos y datos heredados

Esta clase hereda los métodos y datos miembro públicos y protegidos de wxObject.