image.h

Clase wxImage

Esta clase encapsula una imagen independiente de la plataforma.

Jerarquía:

Jerarquía de la clase wxImage

Una imagen puede ser creada a partir de datos, o utilizando wxBitmap::ConvertToImage. Una imagen se puede cargar desde un archivo en una variedad de formatos, y es extensible a nuevos formatos a través de manejadores de formato de imagen. Hay funciones disponibles para establecer y obtener bits de imagen, por lo que se puede utilizar para la manipulación básica de imágenes.

Una wxImage no puede (actualmente) ser dibujada directamente en un wxDC. En su lugar, se debe crear un objeto wxBitmap específico de la plataforma utilizando el constructor wxBitmap::wxBitmap(wxImage,int depth). Este mapa de bits se puede dibujar en un contexto de dispositivo, utilizando wxDC::DrawBitmap.

Más sobre la diferencia entre wxImage y wxBitmap: wxImage es sólo un buffer de bytes RGB con un buffer opcional para los bytes alpha. Todo el código es genérico, independiente de la plataforma y del formato de archivo de imagen. Incluye código genérico para escalar, redimensionar, recortar y otras manipulaciones de los datos de la imagen. Por otro lado, wxBitmap está pensado para envolver cualquier formato de imagen nativo que sea más rápido/fácil de dibujar en un DC o para ser el objetivo de las operaciones de dibujo realizadas en un wxMemoryDC. Al dividir las responsabilidades entre wxImage/wxBitmap de esta manera es más fácil utilizar código genérico compartido por todas las plataformas y tipos de imagen para operaciones genéricas y código específico de la plataforma donde se necesita rendimiento o compatibilidad.

Un valor de color de la imagen puede utilizarse como color de máscara, lo que llevará a la creación automática de un objeto wxMask asociado al objeto bitmap.

Soporte de canal alfa

A partir de wxWidgets 2.5.0 wxImage soporta datos de canal alfa, es decir, además de un byte para los componentes de color rojo, verde y azul para cada píxel también almacena un byte que representa la opacidad del píxel.

Un valor alfa de 0 corresponde a un píxel transparente (opacidad nula), mientras que un valor de 255 significa que el píxel es 100% opaco. Las constantes wxIMAGE_ALPHA_TRANSPARENT y wxIMAGE_ALPHA_OPAQUE pueden utilizarse para indicar esos valores de una forma más legible.

Mientras que todas las imágenes tienen datos RGB, no todas tienen un canal alfa. Antes de utilizar wxImage::GetAlpha se debe comprobar si esta imagen contiene un canal alfa con wxImage::HasAlpha. Actualmente los manejadores de los formatos BMP, PNG, TGA y TIFF tienen soporte completo de canal alfa para la carga, así que si se quiere usar alfa se tiene que usar uno de estos formatos. Si se inicializa el canal alfa de la imagen usando wxImage::SetAlpha, se debería guardar en formato PNG, TGA, o TIFF para evitar perderlo ya que estos son los únicos manejadores que actualmente soportan el guardado con alfa.

Gestores de imágenes disponibles

Están disponibles los siguientes manejadores de imagen. wxBMPHandler está siempre instalado por defecto. Para utilizar otros formatos de imagen, hay que instalar el manejador apropiado con wxImage::AddHandler o llamar a wxInitAllImageHandlers().

  • wxBMPHandler: Para cargar (incluyendo soporte alpha) y guardar, siempre instalado.
  • wxPNGHandler: Para cargar y guardar. Incluye soporte alfa.
  • wxJPEGHandler: Para cargar y guardar.
  • wxGIFHandler: Para cargar y guardar (ver más abajo).
  • wxPCXHandler: Para cargar y guardar (ver más abajo).
  • wxPNMHandler: Para cargar y guardar (ver más abajo).
  • wxTIFFHandler: Para cargar y guardar. Incluye soporte alfa.
  • wxTGAHandler: Para cargar y guardar. Incluye soporte alfa.
  • wxIFFHandler: Sólo para cargar.
  • wxXPMHandler: Para cargar y guardar.
  • wxICOHandler: Para cargar y guardar.
  • wxCURHandler: Para cargar y guardar.
  • wxANIHandler: Sólo para cargar.

Al guardar en formato PCX, wxPCXHandler contará el número de colores diferentes en la imagen; si hay 256 o menos colores, guardará como 8 bits, si no, guardará como 24 bits.

La carga de PNMs sólo funciona para imágenes ASCII o RGB en bruto. Al guardar en formato PNM, wxPNMHandler siempre guardará como raw RGB.

Guardar GIFs requiere imágenes de máximo 8 bpp (ver wxQuantize), y el canal alfa convertido en máscara (ver wxImage::ConvertAlphaToMask). Guardar un GIF animado requiere imágenes del mismo tamaño (ver wxGIFHandler::SaveAnimation).

Funciones miembro

wxImage()

wxImage::wxImage()

Crea un objeto wxImage vacío sin canal alfa.

wxImage()

wxImage::wxImage( int width, int height, bool clear = true )

Crea una imagen con el tamaño dado y la borra si se solicita.

No crea un canal alfa.

Parámetros
width
Especifica la anchura de la imagen.
height
Especifica la altura de la imagen.
clear
Si es true, inicializa la imagen a negro.
wxImage()

wxImage::wxImage( const wxSize & sz, bool clear = true )

Esta es una función miembro sobrecargada, proporcionada por conveniencia. Sólo difiere de la función anterior en los argumentos que acepta.

wxImage()

wxImage::wxImage( int width, int height, unsigned char * data, bool static_data = false )

Crea una imagen a partir de datos en memoria.

Si static_data es false entonces wxImage tomará posesión de los datos y los liberará después. Para ello, debe asignarse con malloc.

Parámetros
width
Especifica la anchura de la imagen.
height
Especifica la altura de la imagen.
data
Un puntero a los datos RGB
static_data
Indica si los datos deben ser liberados después de su uso.
wxImage()

wxImage::wxImage( const wxSize & sz, unsigned char * data, bool static_data = false )

Esta es una función miembro sobrecargada, proporcionada por conveniencia. Sólo difiere de la función anterior en los argumentos que acepta.

wxImage()

wxImage::wxImage( int width, int height, unsigned char * data, unsigned char * alpha, bool static_data = false )

Crea una imagen a partir de datos en memoria.

Si static_data es false entonces wxImage tomará posesión de los datos y los liberará después. Para ello, debe asignarse con malloc.

Parámetros
width
Especifica la anchura de la imagen.
height
Especifica la altura de la imagen.
data
Un puntero a los datos RGB.
alpha
Un puntero a los datos del canal alfa.
static_data
Indica si los datos deben ser liberados después de su uso.
wxImage()

wxImage::wxImage( const wxSize & sz, unsigned char * data, unsigned char * alpha, bool static_data = false )

Esta es una función miembro sobrecargada, proporcionada por conveniencia. Sólo difiere de la función anterior en los argumentos que acepta.

wxImage()

wxImage::wxImage(const char *const * xpmData)

Crea una imagen a partir de datos XPM.

Parámetros
xpmData
Un puntero a los datos de imagen XPM.

Nota: No soportado por wxPerl.

Este constructor se ha hecho explícito en wxWidgets 3.1.6.

wxImage()

wxImage::wxImage( const wxString & name, wxBitmapType type = wxBITMAP_TYPE_ANY, int index = -1 )

Crea una imagen a partir de un archivo.

Parámetros
name
Nombre del fichero desde el que cargar la imagen.
type
Puede ser uno de los siguientes:
  • wxBITMAP_TYPE_BMP: Carga un archivo bitmap de Windows.
  • wxBITMAP_TYPE_GIF: Carga un archivo de mapa de bits GIF.
  • wxBITMAP_TYPE_JPEG: Carga un archivo de mapa de bits JPEG.
  • wxBITMAP_TYPE_PNG: Carga un fichero de mapa de bits PNG.
  • wxBITMAP_TYPE_PCX: Carga un fichero de mapa de bits PCX.
  • wxBITMAP_TYPE_PNM: Carga un fichero de mapa de bits PNM.
  • wxBITMAP_TYPE_TIFF: Carga un fichero de mapa de bits TIFF.
  • wxBITMAP_TYPE_TGA: Carga un fichero de mapa de bits TGA.
  • wxBITMAP_TYPE_XPM: Carga un fichero de mapa de bits XPM.
  • wxBITMAP_TYPE_ICO: Carga un fichero de iconos de Windows (ICO).
  • wxBITMAP_TYPE_CUR: Carga un fichero de cursor de Windows (CUR).
  • wxBITMAP_TYPE_ANI: Carga un fichero de cursor animado de Windows (ANI).
  • wxBITMAP_TYPE_ANY: Intentará autodetectar el formato.
index
Índice de la imagen a cargar en el caso de que el fichero de imagen contenga múltiples imágenes. Sólo lo utilizan los gestores de GIF, ICO y TIFF. El valor por defecto (-1) significa «elige la imagen por defecto» y es interpretada como la primera imagen (index=0) por los manejadores GIF y TIFF y como la más grande y colorida por el manejador ICO.
Observaciones

Dependiendo de cómo se haya configurado wxWidgets y de qué manejadores se hayan cargado, puede que no todos los formatos estén disponibles. Cualquier manejador que no sea BMP debe ser previamente inicializado con wxImage::AddHandler o wxInitAllImageHandlers.

Nota: Se puede utilizar GetOptionInt() para obtener la zona activa al cargar archivos de cursor:

int hotspot_x = image.GetOptionInt(wxIMAGE_OPTION_CUR_HOTSPOT_X);
int hotspot_y = image.GetOptionInt(wxIMAGE_OPTION_CUR_HOTSPOT_Y);
wxImage()

wxImage::wxImage( const wxString & name, const wxString & mimetype, int index = -1 )

Crea una imagen a partir de un archivo utilizando MIME-types para especificar el tipo.

Parámetros
name
Nombre del archivo desde el que cargar la imagen.
mimetype
Cadena del tipo MIME (por ejemplo 'image/jpeg')
index
Ver descripción en la sobrecarga wxImage(const wxString&, wxBitmapType, int).
wxImage()

wxImage::wxImage( wxInputStream & stream, wxBitmapType type = wxBITMAP_TYPE_ANY, int index = -1 )

Crea una imagen a partir de un flujo.

Parámetros
stream
Flujo de entrada abierto desde el que cargar la imagen. Actualmente, el flujo debe soportar búsqueda.
type
Ver descripción en la sobrecarga wxImage(const wxString&, wxBitmapType, int).
index
Ver descripción en la sobrecarga wxImage(const wxString&, wxBitmapType, int).
wxImage()

wxImage::wxImage( wxInputStream & stream, const wxString & mimetype, int index = -1 )

Crea una imagen a partir de un flujo utilizando MIME-types para especificar el tipo.

Parámetros
stream
Flujo de entrada abierto desde el que cargar la imagen. Actualmente, el flujo debe soportar búsqueda.
mimetype
Cadena de tipo MIME (por ejemplo 'image/jpeg')
index
Ver descripción en la sobrecarga wxImage(const wxString&, wxBitmapType, int).
~wxImage()

virtual wxImage::~wxImage()

Destructor.

AddHandler()

static void wxImage::AddHandler(wxImageHandler * handler)

Registra un gestor de imágenes.

Ejemplo típico de uso:

wxImage::AddHandler(new wxPNGHandler);

Consultar Controladores de imágenes disponibles para ver una lista de los controladores disponibles. También se puede utilizar wxInitAllImageHandlers() para añadir manejadores para todos los formatos de imagen soportados por wxWidgets a la vez.

Parámetros
handler
Un objeto handler asignado a la pila que será borrado por wxImage si es eliminado posteriormente por RemoveHandler() o al cerrar el programa.
Blur()

wxImage wxImage::Blur(int blurRadius) const

Desenfoca la imagen en dirección horizontal y vertical según el radio de desenfoque especificado.

No debe utilizarse cuando se utiliza un único color de máscara para la transparencia.

BlurHorizontal()

wxImage wxImage::BlurHorizontal(int blurRadius) const

Desenfoca la imagen sólo en dirección horizontal.

No debe utilizarse cuando se utiliza un único color de máscara para la transparencia.

BlurVertical()

wxImage wxImage::BlurVertical(int blurRadius) const

Desenfoca la imagen sólo en dirección vertical.

No debe utilizarse cuando se utiliza un único color de máscara para la transparencia.

CanRead()

static bool wxImage::CanRead(const wxString & filename)

Devuelve true si al menos uno de los manejadores de imagen disponibles puede leer el archivo con el nombre dado.

Ver wxImageHandler::CanRead para más información.

CanRead()

static bool wxImage::CanRead(wxInputStream & stream)

Devuelve true si al menos uno de los manejadores de imagen disponibles puede leer los datos del flujo dado.

Ver wxImageHandler::CanRead para más información.

ChangeBrightness()

void wxImage::ChangeBrightness(double factor)

Cambia el brillo (valor) de cada píxel de la imagen.

factor es un valor double en el rango [-1.0..+1.0], donde -1.0 corresponde a -100 por ciento y +1.0 corresponde a +100 por ciento.

ChangeHSV()

void wxImage::ChangeHSV( double angleH, double factorS, double factorV )

Cambia el tono, la saturación y el brillo (valor) de cada píxel de la imagen.

angleH es un double en el rango [-1.0..+1.0], donde -1.0 corresponde a -360 grados y +1.0 corresponde a +360 grados, factorS es un double en el rango [-1.0..+1.0], donde -1.0 corresponde a -100 por ciento y +1.0 corresponde a +100 por ciento y factorV es un double en el rango [-1.0..+1.0], donde -1.0 corresponde a -100 por ciento y +1.0 corresponde a +100 por ciento.

ChangeLightness()

wxImage wxImage::ChangeLightness(int alpha) const

Devuelve una versión modificada de la imagen basada en la luminosidad dada.

Esta función de utilidad simplemente oscurece o aclara un color, basándose en el porcentaje especificado ialpha. ialpha de 0 haría el color completamente negro, 200 completamente blanco y 100 no cambiaría el color.

Observaciones

Esta función llama a wxColour::ChangeLightness() para cada píxel de la imagen.

ChangeSaturation()

void wxImage::ChangeSaturation(double factor)

Cambia la saturación de cada píxel de la imagen.

factor es un doble en el rango [-1.0..+1.0], donde -1.0 corresponde a -100 por ciento y +1.0 corresponde a +100 por ciento.

CleanUpHandlers()

static void wxImage::CleanUpHandlers()

Borra todos los manejadores de imagen.

Esta función es llamada por wxWidgets al salir.

Clear()

void wxImage::Clear(unsigned char value = 0)

Inicializa los datos de la imagen con ceros (por defecto) o con el valor del byte dado como value.

ClearAlpha()

void wxImage::ClearAlpha()

Elimina el canal alfa de la imagen.

Esta función sólo debe ser llamada si la imagen tiene datos de canal alfa, usar HasAlpha() para comprobarlo.

ComputeHistogram()

unsigned long wxImage::ComputeHistogram(wxImageHistogram & histogram) const

Calcula el histograma de la imagen.

histogram es una referencia al objeto wxImageHistogram. wxImageHistogram es una especialización de la plantilla wxHashMap y se define como sigue:

class WXDLLEXPORT wxImageHistogramEntry
{
public:
    wxImageHistogramEntry() : index(0), value(0) {}
    unsigned long index;
    unsigned long value;
};
 
WX_DECLARE_EXPORTED_HASH_MAP(unsigned long, wxImageHistogramEntry,
                            wxIntegerHash, wxIntegerEqual,
                            wxImageHistogram);
Valor de retorno

Devuelve el número de colores del histograma.

ConvertAlphaToMask()

bool wxImage::ConvertAlphaToMask( unsigned char mr, unsigned char mg, unsigned char mb, unsigned char threshold = wxIMAGE_ALPHA_THRESHOLD )

Si la imagen tiene canal alfa, este método la convierte en máscara utilizando el color especificado como color de máscara.

Si la imagen tiene un canal alfa, todos los píxeles con un valor alfa inferior al umbral se sustituyen por el color de la máscara y se elimina el canal alfa. En caso contrario, no se hace nada.

Parámetros
mr
El componente rojo del color de la máscara.
mg
El componente verde del color de la máscara.
mb
El componente azul del color de la máscara.
threshold
Los píxeles con valores del canal alfa inferiores al umbral dado se consideran transparentes, es decir, se fijan los píxeles de máscara correspondientes. Los píxeles con valores alfa por encima del umbral se consideran opacos.
Valor de retorno

Devuelve true en caso de éxito, false en caso de error.

ConvertAlphaToMask()

bool wxImage::ConvertAlphaToMask(unsigned char threshold = wxIMAGE_ALPHA_THRESHOLD)

Si la imagen tiene canal alfa, este método lo convierte en máscara.

Si la imagen tiene un canal alfa, todos los píxeles con un valor alfa inferior al umbral se sustituyen por el color de la máscara y se elimina el canal alfa. En caso contrario, no se hace nada.

El color de la máscara se elige automáticamente usando FindFirstUnusedColour(), ver la sobrecarga anterior si esto no es apropiado.

Valor de retorno

Devuelve true en caso de éxito, false en caso de error.

ConvertToDisabled()

wxImage wxImage::ConvertToDisabled(unsigned char brightness = 255) const

Devuelve la versión desactivada (atenuada) de la imagen.

Observaciones

Esta función llama a wxColour::MakeDisabled() para cada píxel de la imagen.

ConvertToGreyscale()

wxImage wxImage::ConvertToGreyscale() const

Devuelve una versión en escala de grises de la imagen.

ConvertToGreyscale()

wxImage wxImage::ConvertToGreyscale( double weight_r, double weight_g, double weight_b ) const

Devuelve una versión en escala de grises de la imagen.

La imagen devuelta utiliza el componente de luminancia del original para calcular la escala de grises. Por defecto utiliza 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).

Observaciones

Esta función llama a wxColour::MakeGrey() para cada píxel de la imagen.

ConvertToMono()

wxImage wxImage::ConvertToMono( unsigned char r, unsigned char g, unsigned char b ) const

Devuelve una versión monocromática de la imagen.

La imagen devuelta tiene color blanco donde el original tiene color (r,g,b) y color negro en todas las demás partes.

Observaciones

Esta función llama a wxColour::MakeMono() para cada píxel de la imagen.

Copy()

wxImage wxImage::Copy() const

Devuelve una copia idéntica de esta imagen.

Create()

bool wxImage::Create( const wxSize & sz, bool clear = true )

Esta es una función miembro sobrecargada, proporcionada por conveniencia. Sólo difiere de las siguientes funciones en los argumentos que acepta.

Create()

bool wxImage::Create( const wxSize & sz, unsigned char * data, bool static_data = false )

Esta es una función miembro sobrecargada, proporcionada por conveniencia. Sólo difiere de las siguientes funciones en los argumentos que acepta.

Create()

bool wxImage::Create( const const wxSize & sz, unsigned char * data, unsigned char * alpha, bool static_data = false )

Esta es una función miembro sobrecargada, proporcionada por conveniencia. Sólo difiere de las siguientes funciones en los argumentos que acepta.

Create()

bool wxImage::Create( int width, int height, bool clear = true )

Crea una nueva imagen.

Ver wxImage::wxImage(int,int,bool) para más información.

Valor de retorno

true si la llamada tuvo éxito, false en caso contrario.

Create()

bool wxImage::Create( int width, int height, unsigned char * data, bool static_data = false )

Crea una nueva imagen.

Ver wxImage::wxImage(int,int,unsigned char*,bool) para más información.

Valor de retorno

true si la llamada tuvo éxito, false en caso contrario.

Create()

bool wxImage::Create( int width, int height, unsigned char * data, unsigned char * alpha, bool static_data = false )

Crea una nueva imagen.

Ver wxImage::wxImage(int,int,unsigned char*,bool) para más información.

Valor de retorno

true si la llamada tuvo éxito, false en caso contrario.

Destroy()

void wxImage::Destroy()

Destruye los datos de la imagen.

FindFirstUnusedColour()

bool wxImage::FindFirstUnusedColour( unsigned char * r, unsigned char * g, unsigned char * b, unsigned char startR = 1, unsigned char startG = 0, unsigned char startB = 0 ) const

Busca el primer color que nunca se utiliza en la imagen.

La búsqueda comienza en el color inicial dado y continúa incrementando los componentes R, G y B (en este orden) en 1 hasta que se encuentra un color no utilizado o se agota el espacio de color.

Los parámetros r, g, b son punteros a variables para guardar el color.

Los parámetros startR, startG, startB definen los valores iniciales del color. El color devuelto tendrá valores RGB iguales o superiores a éstos.

Valor de retorno

Devuelve false si no queda ningún color sin usar, true en caso de éxito.

Nota: Este método implica el cálculo del histograma, que es una operación computacionalmente intensiva.

FindHandler()

static wxImageHandler* wxImage::FindHandler( const wxString & extension, wxBitmapType imageType )

Busca el manejador asociado a la extensión y tipo dados.

Parámetros
extension
La extensión del archivo, como "bmp".
imageType
El tipo de imagen; uno de los valores wxBitmapType.
Valor de retorno

Un puntero al manejador si se encuentra, nullptr en caso contrario.

FindHandler()

static wxImageHandler* wxImage::FindHandler(const wxString & name)

Encuentra el manejador con el nombre dado.

Parámetros
name
El nombre del gestor.
Valor de retorno

Un puntero al manejador si se encuentra, nullptr en caso contrario.

FindHandler()

static wxImageHandler* wxImage::FindHandler(wxBitmapType imageType)

Busca el manejador asociado al tipo de imagen dado.

Parámetros
imageType
El tipo de imagen; uno de los valores wxBitmapType.
Valor de retorno

Un puntero al manejador si se encuentra, nullptr en caso contrario.

FindHandlerMime()

static wxImageHandler* wxImage::FindHandlerMime(const wxString & mimetype)

Encuentra el manejador asociado con el tipo MIME dado.

Parámetros
mimetype
Tipo MIME.
Valor de retorno

Un puntero al manejador si se encuentra, nullptr en caso contrario.

GetAlpha()

unsigned char* wxImage::GetAlpha() const

Devuelve un puntero a la matriz que almacena los valores alfa de esta imagen.

Este puntero es nullptr para las imágenes sin el canal alfa. Si la imagen lo tiene, este puntero se puede utilizar para manipular directamente los valores alfa que se almacenan como los RGB.

GetAlpha()

unsigned char wxImage::GetAlpha( int x, int y ) const

Devuelve el valor alfa en la posición del píxel dada.

GetBlue()

unsigned char wxImage::GetBlue( int x, int y ) const

Devuelve la intensidad del azul en la coordenada dada.

GetData()

unsigned char* wxImage::GetData() const

Devuelve los datos de la imagen como una matriz.

Se suele utilizar cuando se manipula directamente la imagen. El valor devuelto apunta a una matriz de caracteres en formato RGBRGBRGB... en el orden de arriba a abajo, de izquierda a derecha, es decir, el primer triplete RGB corresponde al primer píxel de la primera fila, el segundo - al segundo píxel de la primera fila y así sucesivamente hasta el final de la primera fila, con la segunda fila siguiéndole y así sucesivamente.

No debe borrar el puntero devuelto ni pasarlo a SetData().

GetDefaultLoadFlags()

static int wxImage::GetDefaultLoadFlags()

Devuelve las banderas de carga de archivos por defecto utilizadas actualmente.

Consultar SetDefaultLoadFlags() para obtener más información sobre estas banderas.

GetGreen()

unsigned char wxImage::GetGreen( int x, int y ) const

Devuelve la intensidad del verde en la coordenada dada.

GetHandlers()

static wxList& wxImage::GetHandlers()

Devuelve la lista estática de manejadores de formato de imagen.

GetHeight()

int wxImage::GetHeight() const

Obtiene la altura de la imagen en píxeles.

GetImageCount()

static int wxImage::GetImageCount( const wxString & filename, wxBitmapType type = wxBITMAP_TYPE_ANY )

Si el archivo de imagen contiene más de una imagen y el gestor de imágenes es capaz de recuperarlas individualmente, esta función devolverá el número de imágenes disponibles.

Para la sobrecarga que toma el parámetro filename, es el nombre del archivo a consultar. Para la sobrecarga que toma el parámetro stream, es el flujo de entrada abierto con los datos de la imagen.

Ver wxImageHandler::GetImageCount() para más información.

El tipo del parámetro puede ser uno de los siguientes valores:

  • wxBITMAP_TYPE_BMP: Carga un fichero bitmap de Windows.
  • wxBITMAP_TYPE_GIF: Carga un archivo de mapa de bits GIF.
  • wxBITMAP_TYPE_JPEG: Carga un archivo de mapa de bits JPEG.
  • wxBITMAP_TYPE_PNG: Carga un fichero de mapa de bits PNG.
  • wxBITMAP_TYPE_PCX: Carga un fichero de mapa de bits PCX.
  • wxBITMAP_TYPE_PNM: Carga un fichero de mapa de bits PNM.
  • wxBITMAP_TYPE_TIFF: Carga un fichero de mapa de bits TIFF.
  • wxBITMAP_TYPE_TGA: Carga un fichero de mapa de bits TGA.
  • wxBITMAP_TYPE_XPM: Carga un fichero de mapa de bits XPM.
  • wxBITMAP_TYPE_ICO: Carga un fichero de iconos de Windows (ICO).
  • wxBITMAP_TYPE_CUR: Carga un fichero de cursor de Windows (CUR).
  • wxBITMAP_TYPE_ANI: Carga un fichero de cursor animado de Windows (ANI).
  • wxBITMAP_TYPE_ANY: Intentará autodetectar el formato.
Valor de retorno

Número de imágenes disponibles. Para la mayoría de los manejadores de imágenes, es 1 (las excepciones son los formatos TIFF e ICO, así como los GIF animados, para los que esta función devuelve el número de fotogramas de la animación).

GetImageCount()

static int wxImage::GetImageCount( wxInputStream & stream, wxBitmapType type = wxBITMAP_TYPE_ANY )

Si el archivo de imagen contiene más de una imagen y el gestor de imágenes es capaz de recuperarlas individualmente, esta función devolverá el número de imágenes disponibles.

Para la sobrecarga que toma el parámetro filename, es el nombre del archivo a consultar. Para la sobrecarga que toma el parámetro stream, es el flujo de entrada abierto con los datos de la imagen.

Ver wxImageHandler::GetImageCount() para más información.

El tipo del parámetro puede ser uno de los siguientes valores:

  • wxBITMAP_TYPE_BMP: Carga un fichero bitmap de Windows.
  • wxBITMAP_TYPE_GIF: Carga un archivo de mapa de bits GIF.
  • wxBITMAP_TYPE_JPEG: Carga un archivo de mapa de bits JPEG.
  • wxBITMAP_TYPE_PNG: Carga un fichero de mapa de bits PNG.
  • wxBITMAP_TYPE_PCX: Carga un fichero de mapa de bits PCX.
  • wxBITMAP_TYPE_PNM: Carga un fichero de mapa de bits PNM.
  • wxBITMAP_TYPE_TIFF: Carga un fichero de mapa de bits TIFF.
  • wxBITMAP_TYPE_TGA: Carga un fichero de mapa de bits TGA.
  • wxBITMAP_TYPE_XPM: Carga un fichero de mapa de bits XPM.
  • wxBITMAP_TYPE_ICO: Carga un fichero de iconos de Windows (ICO).
  • wxBITMAP_TYPE_CUR: Carga un fichero de cursor de Windows (CUR).
  • wxBITMAP_TYPE_ANI: Carga un fichero de cursor animado de Windows (ANI).
  • wxBITMAP_TYPE_ANY: Intentará autodetectar el formato.
Valor de retorno

Número de imágenes disponibles. Para la mayoría de los manejadores de imágenes, es 1 (las excepciones son los formatos TIFF e ICO, así como los GIF animados, para los que esta función devuelve el número de fotogramas de la animación).

GetImageExtWildcard()

static wxString wxImage::GetImageExtWildcard()

Recorre todos los objetos wxImageHandler registrados y devuelve una cadena que contiene las máscaras de extensión de archivo adecuadas para pasarlas a los cuadros de diálogo de apertura/guardado de archivos.

Valor de retorno

El formato de la cadena devuelta es "(*.ext1;*.ext2)|*.ext1;*.ext2". Suele ser una buena idea añadir una descripción antes de pasar el resultado al cuadro de diálogo. Ejemplo:

wxFileDialog FileDlg( this, "Choose Image", ::wxGetCwd(), "",
                      _("Image Files ") + wxImage::GetImageExtWildcard(),
                      wxFD_OPEN );
GetLoadFlags()

int wxImage::GetLoadFlags() const

Devuelve las banderas de carga de archivos utilizadas para este objeto.

Ver SetLoadFlags() para más información sobre estas banderas.

GetMaskBlue()

unsigned char wxImage::GetMaskBlue() const

Obtiene el valor azul del color de la máscara.

GetMaskGreen()

unsigned char wxImage::GetMaskGreen() const

Obtiene el valor verde del color de la máscara.

GetMaskRed()

unsigned char wxImage::GetMaskRed() const

Obtiene el valor rojo del color de la máscara.

GetOption()

wxString wxImage::GetOption(const wxString & name) const

Obtiene una opción con valor de cadena definida por el usuario.

Opciones genéricas:

  • wxIMAGE_OPTION_FILENAME: El nombre del fichero desde el que se ha cargado la imagen.

Opciones específicas de wxGIFHandler:

  • wxIMAGE_OPTION_GIF_COMMENT: El texto del comentario que se lee del fichero GIF o se escribe en él. En un GIF animado cada fotograma puede tener su propio comentario. Si sólo hay un comentario en el primer fotograma de un GIF no se repetirá en los demás fotogramas.
Parámetros
name
El nombre de la opción, sin distinguir mayúsculas de minúsculas.
Valor de retorno

El valor de la opción o una cadena vacía si no se encuentra. Utilizar HasOption() si una cadena vacía puede ser un valor de opción válido.

GetOptionInt()

int wxImage::GetOptionInt(const wxString & name) const

Obtiene una opción de valor entero definida por el usuario.

La función no distingue entre mayúsculas y minúsculas. Si la opción dada no está presente, la función devuelve 0. Utilizar HasOption() si 0 es un posible valor válido para la opción.

Opciones genéricas:

  • wxIMAGE_OPTION_MAX_WIDTH y wxIMAGE_OPTION_MAX_HEIGHT: Si se especifica alguna de estas opciones, la imagen cargada se reducirá (conservando su relación de aspecto) de forma que su anchura sea menor que la anchura máxima dada si no es 0 y su altura sea menor que la altura máxima dada si no es 0. Esto se usa normalmente para cargar miniaturas y la ventaja de usar estas opciones comparado con llamar a Rescale() después de cargar es que algunos manejadores (sólo uno de JPEG por ahora) soportan el reescalado de la imagen durante la carga, lo que es mucho más eficiente que cargar la imagen entera y reescalarla después (si estas opciones no son soportadas por el manejador, esto es lo que ocurre). Estas opciones deben establecerse antes de llamar a LoadFile() para que tengan efecto.
  • wxIMAGE_OPTION_ORIGINAL_WIDTH y wxIMAGE_OPTION_ORIGINAL_HEIGHT: Estas opciones devolverán el tamaño original de la imagen si se especifica wxIMAGE_OPTION_MAX_WIDTH o wxIMAGE_OPTION_MAX_HEIGHT.
  • wxIMAGE_OPTION_QUALITY: Calidad JPEG utilizada al guardar. Es un entero en el rango 0..100 con 0 significando muy pobre y 100 excelente (pero muy mal comprimido). Esta opción se ignora para el resto de formatos.
  • wxIMAGE_OPTION_RESOLUTIONUNIT: El valor de esta opción determina si la resolución de la imagen se especifica en centímetros o en pulgadas, ver elementos del enum wxImageResolution.
  • wxIMAGE_OPTION_RESOLUTION, wxIMAGE_OPTION_RESOLUTIONX y wxIMAGE_OPTION_RESOLUTIONY: Estas opciones definen la resolución de la imagen en las unidades correspondientes al valor de las opciones wxIMAGE_OPTION_RESOLUTIONUNIT. La primera opción puede establecerse antes de guardar la imagen para establecer la resolución horizontal y vertical en el mismo valor. Las opciones X e Y son establecidas por los manejadores de imagen si soportan la resolución de la imagen (actualmente los manejadores BMP, JPEG y TIFF lo hacen) y la imagen proporciona la información de resolución y puede ser consultada después de cargar la imagen.

Opciones específicas de wxPNGHandler:

  • wxIMAGE_OPTION_PNG_FORMAT: Formato para guardar un fichero PNG, ver wxImagePNGType para los valores soportados.
  • wxIMAGE_OPTION_PNG_BITDEPTH: Profundidad de bits para cada canal (R/G/B/A).
  • wxIMAGE_OPTION_PNG_FILTER: Filtro para guardar un fichero PNG, ver libpng(http://www.libpng.org/pub/png/libpng-1.2.5-manual.html) para los posibles valores (p.e. PNG_FILTER_NONE, PNG_FILTER_SUB, PNG_FILTER_UP, etc).
  • wxIMAGE_OPTION_PNG_COMPRESSION_LEVEL: Nivel de compresión (0..9) para guardar un archivo PNG. Un valor alto crea un archivo PNG más pequeño pero más lento. Nótese que a diferencia de otros formatos (p.e. JPEG) el formato PNG es siempre sin pérdidas y por tanto este nivel de compresión no afecta a la calidad de la imagen.
  • wxIMAGE_OPTION_PNG_COMPRESSION_MEM_LEVEL: Nivel de uso de memoria de compresión (1..9) para guardar un archivo PNG. Un valor alto significa que el proceso de guardado consume más memoria, pero puede crear un archivo PNG más pequeño.
  • wxIMAGE_OPTION_PNG_COMPRESSION_STRATEGY: Los valores posibles son 0 para la estrategia por defecto, 1 para filtro, y 2 para Huffman-only. Se puede utilizar OptiPNG(http://optipng.sourceforge.net/) para obtener un valor adecuado para la aplicación.
  • wxIMAGE_OPTION_PNG_COMPRESSION_BUFFER_SIZE: Tamaño del buffer interno (en bytes) para guardar un fichero PNG. Lo ideal es que sea tan grande como el archivo PNG resultante. Utilizar esta opción si la aplicación produce imágenes con poca variación de tamaño.

Opciones específicas de wxTIFFHandler:

  • wxIMAGE_OPTION_TIFF_BITSPERSAMPLE: Número de bits por muestra (canal). Actualmente se soportan valores de 1 y 8. Un valor de 1 da como resultado una imagen en blanco y negro. Un valor de 8 (por defecto) puede significar escala de grises o RGB, dependiendo del valor de wxIMAGE_OPTION_TIFF_SAMPLESPERPIXEL.
  • wxIMAGE_OPTION_TIFF_SAMPLESPERPIXEL: Número de muestras (canales) por píxel. Actualmente se admiten valores de 1 y 3. Un valor de 1 da como resultado una imagen en escala de grises (por defecto) o en blanco y negro, dependiendo del valor de wxIMAGE_OPTION_TIFF_BITSPERSAMPLE. Un valor de 3 (por defecto) dará como resultado una imagen RGB.
  • wxIMAGE_OPTION_TIFF_COMPRESSION: Tipo de compresión. Por defecto es 1 (COMPRESSION_NONE). Otros valores típicos son 5 (COMPRESSION_LZW) y 7 (COMPRESSION_JPEG). Ver tiff.h para más opciones.
  • wxIMAGE_OPTION_TIFF_PHOTOMETRIC: Especifica la interpretación fotométrica. Por defecto es 2 (PHOTOMETRIC_RGB) para imágenes RGB y 0 (PHOTOMETRIC_MINISWHITE) para imágenes en escala de grises o blanco y negro. También puede ajustarse a 1 (PHOTOMETRIC_MINISBLACK) para tratar el valor más bajo como negro y el más alto como blanco. Si se desea una imagen en escala de grises, basta con especificar wxIMAGE_OPTION_TIFF_PHOTOMETRIC y ponerlo a PHOTOMETRIC_MINISWHITE o PHOTOMETRIC_MINISBLACK. De los demás valores ya nos encargamos nosotros.

Opciones específicas de wxGIFHandler:

  • wxIMAGE_OPTION_GIF_TRANSPARENCY: Cómo tratar los píxeles transparentes. Por defecto, el color de los píxeles transparentes se cambia a rosa brillante, de modo que si la imagen se dibuja accidentalmente sin transparencia, será obvio. Normalmente, esto no se notaría, ya que estos píxeles no se renderizarán. Pero en algunos casos puede ser útil cargar un GIF sin hacer ninguna modificación en sus colores. Utilizar wxIMAGE_OPTION_GIF_TRANSPARENCY_UNCHANGED para mantener los colores correctos. Utilizar wxIMAGE_OPTION_GIF_TRANSPARENCY_HIGHLIGHT para convertir los píxeles transparentes a rosa (por defecto). Esta opción se ha añadido en wxWidgets 3.1.1.

Nota: Hay que tener cuidado al combinar las opciones wxIMAGE_OPTION_TIFF_SAMPLESPERPIXEL, wxIMAGE_OPTION_TIFF_BITSPERSAMPLE, y wxIMAGE_OPTION_TIFF_PHOTOMETRIC. Aunque se toman algunas medidas para evitar combinaciones y/o valores ilegales, sigue siendo fácil abusar de ellos y obtener resultados no válidos en forma de imágenes corruptas o cuelgues.

Parámetros
name
El nombre de la opción, sin distinguir mayúsculas de minúsculas.
Valor de retorno

El valor de la opción o 0 si no se encuentra. Utilizar HasOption() si 0 puede ser un valor de opción válido.

GetOrFindMaskColour()

bool wxImage::GetOrFindMaskColour( unsigned char * r, unsigned char * g, unsigned char * b ) const

Obtiene el color actual de la máscara o busca un color adecuado no utilizado que pueda usarse como color de máscara.

Devuelve true si la imagen tiene actualmente una máscara.

GetPalette()

const wxPalette& wxImage::GetPalette() const

Devuelve la paleta asociada a la imagen.

Actualmente la paleta sólo se utiliza al convertir a wxBitmap en Windows.

Algunos de los manejadores de wxImage han sido modificados para establecer la paleta si existe una en el archivo de imagen (normalmente imágenes de 256 o menos colores en formato GIF o PNG).

GetRed()

unsigned char wxImage::GetRed( int x, int y ) const

Devuelve la intensidad del rojo en la coordenada dada.

GetSize()

wxSize wxImage::GetSize() const

Devuelve el tamaño de la imagen en píxeles.

GetSubImage()

wxImage wxImage::GetSubImage(const wxRect & rect) const

Devuelve una subimagen de la actual siempre que el rect pertenezca por completo a la imagen.

GetType()

wxBitmapType wxImage::GetType() const

Obtiene el tipo de imagen encontrado por LoadFile() o especificado con SaveFile().

GetWidth()

int wxImage::GetWidth() const

Obtiene el ancho de la imagen en píxeles.

HasAlpha()

bool wxImage::HasAlpha() const

Devuelve true si esta imagen tiene canal alfa, false en caso contrario.

HasMask()

bool wxImage::HasMask() const

Devuelve true si hay una máscara activa, false en caso contrario.

HasOption()

bool wxImage::HasOption(const wxString & name) const

Devuelve true si la opción dada está presente.

La función no distingue entre mayúsculas y minúsculas.

Las listas de las opciones actualmente soportadas se encuentran en los documentos de las funciones GetOption() y GetOptionInt().

HSVtoRGB()

static wxImage::RGBValue wxImage::HSVtoRGB(const wxImage::HSVValue & hsv)

Convierte un color en espacio de color HSV a espacio de color RGB.

InitAlpha()

void wxImage::InitAlpha()

Inicializa los datos del canal alfa de la imagen.

Es un error llamarlo si la imagen ya tiene datos alfa. Si no los tiene, los datos alfa se inicializarán por defecto para que todos los píxeles sean completamente opacos. Pero si la imagen tiene un color de máscara, todos los píxeles de la máscara serán completamente transparentes.

InitStandardHandlers()

static void wxImage::InitStandardHandlers()

Sólo para uso interno.

Añade manejadores de formato de imagen estándar. Por el momento sólo instala wxBMPHandler, que es utilizado por wxBitmap.

Esta función es llamada por wxWidgets al iniciarse, y no debería ser llamada por el usuario.

InsertHandler()

static void wxImage::InsertHandler(wxImageHandler * handler)

Añade un manejador al principio de la lista estática de manejadores de formato.

Parámetros
handler
Un nuevo objeto manejador de formato de imagen. Normalmente sólo hay una instancia de una determinada clase de manejador en una sesión de aplicación.
IsOk()

bool wxImage::IsOk() const

Devuelve true si hay datos de imagen.

IsTransparent()

bool wxImage::IsTransparent( int x, int y, unsigned char threshold = wxIMAGE_ALPHA_THRESHOLD ) const

Devuelve true si el píxel dado es transparente, es decir, o bien tiene el color de la máscara si esta imagen tiene una máscara o si esta imagen tiene canal alfa y el valor alfa de este píxel es estrictamente menor que el threshold.

LoadFile()

virtual bool wxImage::LoadFile( const wxString & name, const wxString & mimetype, int index = -1 )

Carga una imagen desde un archivo.

Si no se proporciona ningún tipo de manejador, la biblioteca intentará autodetectar el formato.

Parámetros
name
Nombre del fichero desde el que cargar la imagen.
mimetype
Cadena de tipo MIME (por ejemplo 'image/jpeg').
index
Ver la descripción en la sobrecarga LoadFile(wxInputStream&, wxBitmapType, int).
LoadFile()

virtual bool wxImage::LoadFile( const wxString & name, wxBitmapType type = wxBITMAP_TYPE_ANY, int index = -1 )

Carga una imagen desde un archivo.

Si no se proporciona ningún tipo de manejador, la biblioteca intentará autodetectar el formato.

Parámetros
name
Nombre del fichero desde el que cargar la imagen.
type
Ver la descripción en la sobrecarga LoadFile(wxInputStream&, wxBitmapType, int).
.index
Ver la descripción en la sobrecarga LoadFile(wxInputStream&, wxBitmapType, int).
LoadFile()

virtual bool wxImage::LoadFile( wxInputStream & stream, const wxString & mimetype, int index = -1 )

Carga una imagen desde un flujo de entrada.

Parámetros
stream
Flujo de entrada abierto desde el que cargar la imagen. Actualmente, el flujo debe soportar seeking.
mimetype
Cadena de tipo MIME (por ejemplo 'image/jpeg').
index
Ver la descripción en la sobrecarga LoadFile(wxInputStream&, wxBitmapType, int).

LoadFile()

virtual bool wxImage::LoadFile( wxInputStream & stream, wxBitmapType type = wxBITMAP_TYPE_ANY, int index = -1 )

Carga una imagen desde un flujo de entrada.

Si el fichero no puede ser cargado, esta función devuelve false y registra un error usando wxLogError(). Si el fichero puede cargarse pero se detectan algunos problemas al hacerlo, también se puede llamar a wxLogWarning() para notificar estos problemas. Si esto no es deseable, utilizar SetLoadFlags() para restablecer la bandera Load_Verbose y suprimir estas advertencias.

Parámetros
stream
Flujo de entrada abierto desde el que cargar la imagen. Actualmente, el flujo debe soportar seeking.
type
Puede ser uno de los siguientes:
  • wxBITMAP_TYPE_BMP: Carga un fichero bitmap de Windows.
  • wxBITMAP_TYPE_GIF: Carga un archivo de mapa de bits GIF.
  • wxBITMAP_TYPE_JPEG: Carga un archivo de mapa de bits JPEG.
  • wxBITMAP_TYPE_PNG: Carga un fichero de mapa de bits PNG.
  • wxBITMAP_TYPE_PCX: Carga un fichero de mapa de bits PCX.
  • wxBITMAP_TYPE_PNM: Carga un fichero de mapa de bits PNM.
  • wxBITMAP_TYPE_TIFF: Carga un fichero de mapa de bits TIFF.
  • wxBITMAP_TYPE_TGA: Carga un fichero de mapa de bits TGA.
  • wxBITMAP_TYPE_XPM: Carga un fichero de mapa de bits XPM.
  • wxBITMAP_TYPE_ICO: Carga un fichero de iconos de Windows (ICO).
  • wxBITMAP_TYPE_CUR: Carga un fichero de cursor de Windows (CUR).
  • wxBITMAP_TYPE_ANI: Carga un fichero de cursor animado de Windows (ANI).
  • wxBITMAP_TYPE_ANY: Intentará autodetectar el formato.
index
Índice de la imagen a cargar en el caso de que el fichero de imagen contenga múltiples imágenes. Sólo lo utilizan los gestores de GIF, ICO y TIFF. El valor por defecto (-1) significa "elige la imagen por defecto" y es interpretada como la primera imagen (index=0) por el manejador GIF y TIFF y como la más grande y colorida por el manejador ICO.
Valor de retorno

true si la operación se ha realizado correctamente, false en caso contrario. Si el parámetro opcional index está fuera de rango, se devuelve false y se realiza una llamada a wxLogError().

Observaciones

Dependiendo de cómo se haya configurado wxWidgets, puede que no todos los formatos estén disponibles.

Nota: Se puede utilizar GetOptionInt() para obtener la zona activa al cargar archivos de cursor:

int hotspot_x = image.GetOptionInt(wxIMAGE_OPTION_CUR_HOTSPOT_X);
int hotspot_y = image.GetOptionInt(wxIMAGE_OPTION_CUR_HOTSPOT_Y);
Mirror()

wxImage wxImage::Mirror(bool horizontally = true) const

Devuelve una copia reflejada de la imagen.

El parámetro horizontally indica la orientación.

Paste()

void wxImage::Paste( const wxImage & image, int x, int y, wxImageAlphaBlendMode alphaBlend = wxIMAGE_ALPHA_BLEND_OVER )

Copia los datos de la imagen dada a la posición especificada en esta imagen.

Se encarga de los problemas de color de la máscara y de fuera de los límites.

Parámetros
image
La imagen que contiene los datos a copiar, debe ser válida.
x
La posición horizontal de la posición a la que copiar los datos.
y
La posición vertical de la posición a la que copiar los datos.
alphaBlend
Este parámetro (nuevo en wx 3.1.5) determina si los valores alfa de la imagen original reemplazan (por defecto) o se componen con el canal alfa de esta imagen. Hay que tener en cuenta que la mezcla alfa anula el manejo de la máscara.
RemoveHandler()

static bool wxImage::RemoveHandler(const wxString & name)

Encuentra el manejador con el nombre dado, y lo elimina.

El manejador también se elimina.

Parámetros
name
El nombre del manejador.
Valor de retorno

true si el manejador fue encontrado y eliminado, false en caso contrario.

Replace()

void wxImage::Replace( unsigned char r1, unsigned char g1, unsigned char b1, unsigned char r2, unsigned char g2, unsigned char b2 )

Sustituye el color especificado por r1,g1,b1 por el color r2,g2,b2.

Rescale()

wxImage& wxImage::Rescale( int width, int height, wxImageResizeQuality quality = wxIMAGE_QUALITY_NORMAL )

Cambia el tamaño de la imagen escalándola: después de una llamada a esta función, la imagen tendrá la anchura y altura dadas.

Para una descripción del parámetro de calidad, ver la función Scale(). Devuelve la imagen (modificada).

Resize()

wxImage& wxImage::Resize( const wxSize & size, const wxPoint & pos, int red = -1, int green = -1, int blue = -1 )

Cambia el tamaño de la imagen sin escalarla, añadiendo un borde del color indicado o recortándola si es necesario.

La imagen se pega en una nueva imagen con el tamaño y color de fondo dados en la posición pos relativa a la parte superior izquierda de la nueva imagen.

Si rojo = verde = azul = -1 se utiliza el color de máscara actual o se busca, utiliza y establece un color de máscara adecuado para las nuevas áreas expuestas.

Valor de retorno

La imagen (modificada).

RGBtoHSV()

static wxImage::HSVValue wxImage::RGBtoHSV(const wxImage::RGBValue & rgb)

Convierte un color en espacio de color RGB a espacio de color HSV.

Rotate()

wxImage wxImage::Rotate( double angle, const wxPoint & rotationCentre, bool interpolating = true, wxPoint * offsetAfterRotation = nullptr ) const

Rota la imagen alrededor del punto dado, un ángulo en radianes.

Si se pasa true a interpolar, se obtiene una mejor calidad de imagen, pero es más lento.

Si la imagen tiene una máscara, se utiliza el color de la máscara para los píxeles no cubiertos en el fondo de la imagen rotada. Si no, se usará el negro (rgb 0, 0, 0).

Devuelve la imagen rotada, dejando esta imagen intacta.

Rotate180()

wxImage wxImage::Rotate180() const

Devuelve una copia de la imagen girada 180 grados.

Rotate90()

wxImage wxImage::Rotate90(bool clockwise = true) const

Devuelve una copia de la imagen girada 90 grados en la dirección indicada por clockwise.

RotateHue()

void wxImage::RotateHue(double angle)

Rota el color de cada píxel de la imagen en ángulo, que es un doble en el rango [-1.0..+1.0], donde -1.0 corresponde a -360 grados y +1.0 corresponde a +360 grados.

SaveFile()

virtual bool wxImage::SaveFile(const wxString & name) const

Guarda una imagen en el archivo nombrado.

El tipo de archivo se determina a partir de la extensión del nombre del archivo. hay que tener en cuenta que esta función puede fallar si no se reconoce la extensión. Se puede utilizar una de las siguientes formas para guardar imágenes en archivos con extensiones no estándar.

Parámetros
name
Nombre del archivo en el que se guardará la imagen.
SaveFile()

virtual bool wxImage::SaveFile( const wxString & name, const wxString & mimetype ) const

Guarda una imagen en el archivo nombrado.

Parámetros
name
Nombre del archivo en el que se guardará la imagen.
mimetype
Tipo MIME.
SaveFile()

virtual bool wxImage::SaveFile( const wxString & name, wxBitmapType type ) const

Guarda una imagen en el archivo nombrado.

Parámetros
name
Nombre del archivo en el que se guardará la imagen.
type
Actualmente se pueden utilizar estos tipos:
  • wxBITMAP_TYPE_BMP: Guarda un archivo de imagen BMP.
  • wxBITMAP_TYPE_JPEG: Guarda un archivo de imagen JPEG.
  • wxBITMAP_TYPE_PNG: Guarda un archivo de imagen PNG.
  • wxBITMAP_TYPE_PCX: Guarda un fichero de imagen PCX (intenta guardar como 8 bits si es posible, si no, vuelve a 24 bits).
  • wxBITMAP_TYPE_PNM: Guarda un fichero de imagen PNM (siempre como RGB crudo).
  • wxBITMAP_TYPE_TIFF: Guarda un fichero de imagen TIFF.
  • wxBITMAP_TYPE_XPM: Guarda un fichero de imagen XPM.
  • wxBITMAP_TYPE_ICO: Guarda un archivo de icono de Windows (ICO). El tamaño puede ser de hasta 255 de ancho por 127 de alto. Se guarda una sola imagen en 8 colores al tamaño suministrado.
  • wxBITMAP_TYPE_CUR: Guarda un fichero de cursor de Windows (CUR).
SaveFile()

virtual bool wxImage::SaveFile( wxOutputStream & stream, const wxString & mimetype ) const

Guarda una imagen en el flujo dado.

Parámetros
stream
Flujo de salida abierto en el que guardar la imagen.
mimetype
Tipo MIME.
Valor de retorno

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

Observaciones

Dependiendo de cómo se haya configurado wxWidgets, puede que no todos los formatos estén disponibles.

Nota: Se puede utilizar SetOption() para establecer la zona activa al guardar una imagen en un archivo de cursor (la zona activa por defecto está en el centro de la imagen):

image.SetOption(wxIMAGE_OPTION_CUR_HOTSPOT_X, hotspotX);
image.SetOption(wxIMAGE_OPTION_CUR_HOTSPOT_Y, hotspotY);
SaveFile()

virtual bool wxImage::SaveFile( wxOutputStream & stream, wxBitmapType type ) const

Guarda una imagen en el flujo dado.

Parámetros
stream
Flujo de salida abierto en el que guardar la imagen.
type
Tipo MIME.
Scale()

wxImage wxImage::Scale( int width, int height, wxImageResizeQuality quality = wxIMAGE_QUALITY_NORMAL ) const

Devuelve una versión escalada de la imagen.

Esto también es útil para escalar mapas de bits en general, ya que la única otra forma de escalar mapas de bits es mezclar un wxMemoryDC en otro wxMemoryDC.

El parámetro quality determina qué método utilizar para remuestrear la imagen, ver la documentación de .

Debe tenerse en cuenta que aunque el uso de wxIMAGE_QUALITY_HIGH produce resultados mucho más bonitos, es un método más lento. El downsampling utilizará el método box averaging que parece funcionar muy rápido. Si se está aumentando la muestra de imágenes más grandes utilizando este método, probablemente se notará que es un poco más lento y en casos extremos será sustancialmente más lento ya que el algoritmo bicúbico tiene que procesar una gran cantidad de datos.

También debe tenerse en cuenta que el escalado de alta calidad puede no funcionar como se espera cuando se utiliza un único color de máscara para la transparencia, ya que el escalado difuminará la imagen y, por lo tanto, eliminará la máscara parcialmente. El uso del canal alfa funcionará. Ejemplo:

// get the bitmap from somewhere
wxBitmap bmp = ...;
 
// rescale it to have size of 32*32
if ( bmp.GetWidth() != 32 || bmp.GetHeight() != 32 )
{
    wxImage image = bmp.ConvertToImage();
    bmp = wxBitmap(image.Scale(32, 32));
 
    // another possibility:
    image.Rescale(32, 32);
    bmp = image;
}

Nota: El algoritmo utilizado para el valor de calidad por defecto (normal) no funciona con imágenes de más de 65536 (2^16) píxeles en cualquiera de sus dimensiones para programas de 32 bits. Para programas de 64 bits, el límite es 2^48, por lo que no es relevante en la práctica.

SetAlpha()
SetAlpha()

void wxImage::SetAlpha( unsigned char * alpha = nullptr, bool static_data = false )

Esta función es similar a SetData() y tiene restricciones similares.

Sin embargo, el puntero que se le pasa puede ser nullptr, en cuyo caso la función asignará la matriz alfa internamente - esto es útil para añadir datos del canal alfa a una imagen que no tiene ninguno.

Si el puntero no es nullptr, debe tener un byte por cada píxel de la imagen y ser asignado con malloc(). wxImage se apropia del puntero y lo liberará a menos que el parámetro static_data esté establecido a true - en este caso el que llama debe hacerlo.

SetData()

void wxImage::SetData( unsigned char * data, bool static_data = false )

Establece los datos de la imagen sin realizar comprobaciones.

Los datos dados deben tener el tamaño (ancho*alto*3) o los resultados serán inesperados. No utilizar este método si no se está seguro de lo que se está haciendo.

Los datos deben haber sido asignados con malloc(), NO con el operador new.

Si static_data es false, después de esta llamada el puntero a los datos es propiedad del objeto wxImage, que será el responsable de borrarlo. No pasar a esta función un puntero obtenido mediante GetData().

SetData()

proto

SetData()

void wxImage::SetData( unsigned char * data, int new_width, int new_height, bool static_data = false )

Esta es una función miembro sobrecargada, proporcionada por conveniencia. Sólo difiere de la función anterior en los argumentos que acepta.

SetDefaultLoadFlags()

static void wxImage::SetDefaultLoadFlags(int flags)

Establece el valor por defecto de las banderas utilizadas para cargar archivos de imagen.

Este método cambia el valor global de las banderas utilizadas para todos los objetos wxImage creados posteriormente por defecto. No afecta a los objetos ya existentes.

Por defecto, las banderas globales incluyen el valor de la bandera Load_Verbose.

SetLoadFlags()

void wxImage::SetLoadFlags(int flags)

Establece las banderas utilizadas para cargar archivos de imagen por este objeto.

Las banderas afectarán a cualquier llamada futura a LoadFile() para este objeto. Para cambiar las banderas de todos los objetos imagen, llamar a SetDefaultLoadFlags() antes de crear cualquiera de ellos.

Actualmente la única bandera definida es Load_Verbose que determina si los problemas no fatales (es decir, que no impiden que el archivo se cargue completamente) deben dar lugar a las llamadas a la función wxLogWarning(). Se recomienda personalizar el manejo de estas advertencias, por ejemplo, definiendo un objetivo de registro personalizado (ver Logging Overview), pero si tales advertencias deben ser completamente suprimidas, borrar esta bandera proporciona una forma sencilla de hacerlo, por ejemplo:

wxImage image;
image.SetLoadFlags(image.GetLoadFlags() & ~wxImage::Load_Verbose);
image.LoadFile(...);
SetMask()

void wxImage::SetMask(bool hasMask = true)

Especifica si hay máscara o no.

El área de la máscara está determinada por el color de máscara actual.

SetMaskColour()

void wxImage::SetMaskColour( unsigned char red, unsigned char green, unsigned char blue )

Establece el color de la máscara para esta imagen (y le dice a la imagen que use la máscara).

SetMaskFromImage()

bool wxImage::SetMaskFromImage( const wxImage & mask, unsigned char mr, unsigned char mg, unsigned char mb )

Establece la máscara de la imagen de modo que los píxeles que tienen un valor RGB de mr, mg, mb en la máscara serán enmascarados en la imagen.

Para ello, primero se busca un color no utilizado en la imagen, se establece este color como color de la máscara y, a continuación, se utiliza este color para dibujar todos los píxeles de la imagen cuyo píxel correspondiente en la máscara tenga un valor RGB determinado.

El parámetro máscara es la imagen de la que se extraerá la forma de la máscara. Debe tener las mismas dimensiones que la imagen.

Los parámetros mr, mg, mb son los valores RGB de los píxeles de la máscara que se utilizarán para crear la máscara.

Valor de retorno

Devuelve false si la máscara no tiene las mismas dimensiones que la imagen o si no queda ningún color sin usar. Devuelve true si la máscara se ha aplicado correctamente.

Nota: Hay que tener en cuenta que este método implica el cálculo del histograma, que es una operación computacionalmente intensiva.

SetOption()

void wxImage::SetOption( const wxString & name, const wxString & value )

Establece una opción definida por el usuario.

La función no distingue mayúsculas de minúsculas en el nombre.

Por ejemplo, al guardar como archivo JPEG, se utiliza la opción calidad, que es un número entre 0 y 100 (0 es pésimo, 100 es muy bueno).

Las listas de las opciones actualmente soportadas se encuentran en los documentos de las funciones GetOption() y GetOptionInt().

SetOption()

void wxImage::SetOption( const wxString & name, int value )

Esta es una función miembro sobrecargada, proporcionada por conveniencia. Sólo difiere de la función anterior en los argumentos que acepta.

SetPalette()

void wxImage::SetPalette(const wxPalette & palette)

Asocia una paleta a la imagen.

La paleta puede utilizarse al convertir wxImage en wxBitmap (actualmente sólo MSW) o en operaciones de guardado de archivos (todavía no hay ninguna).

SetRGB()

void wxImage::SetRGB( const wxRect & rect, unsigned char red, unsigned char green, unsigned char blue )

Establece el color de los píxeles dentro del rectángulo dado.

Esta rutina realiza comprobaciones de los límites de la coordenada, por lo que puede considerarse una forma segura de manipular los datos.

SetRGB()

void wxImage::SetRGB( int x, int y, unsigned char r, unsigned char g, unsigned char b )

Establece el color del píxel en las coordenadas x e y dadas.

SetType()

void wxImage::SetType(wxBitmapType type)

Establece el tipo de imagen devuelto por GetType().

Este método es utilizado principalmente de forma interna por la biblioteca, pero también puede ser llamado desde el código de usuario si la imagen fue creada a partir de datos en el formato de mapa de bits dado sin utilizar LoadFile() (que establecería el tipo correctamente de forma automática).

Hay que tener en cuenta que la imagen debe crearse antes de llamar a esta función.

Parámetros
type
Una de las constantes de tipo de mapa de bits, wxBITMAP_TYPE_INVALID es un valor válido para ella y se puede utilizar para restablecer el tipo de mapa de bits por defecto, pero wxBITMAP_TYPE_MAX no está permitido aquí.
Size()

wxImage wxImage::Size( const wxSize & size, const wxPoint & pos, int red = -1, int green = -1, int blue = -1 ) const

Devuelve una versión redimensionada de esta imagen sin escalarla añadiendo un borde con el color dado o recortándola según sea necesario.

La imagen se pega en una nueva imagen con el tamaño y color de fondo dados en la posición pos relativa a la parte superior izquierda de la nueva imagen.

Si red = green = blue = -1, las áreas de la imagen más grande no cubiertas por esta imagen se hacen transparentes rellenándolas con el color de la máscara de la imagen (que se asignará automáticamente si no está configurado).

En caso contrario, las áreas se rellenarán con el color con los componentes RGB especificados.

Operadores

operator=()

wxImage& wxImage::operator=(const wxImage & image)

Operador de asignación, utilizando el recuento de referencias.

Parámetros
image
Imagen a asignar.
Valor de retorno

Devuelve el objeto 'this'.

Métodos y datos heredados

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