rawbmp.h

Clase wxPixelData< Image, PixelFormat >

template<clase Image, clase PixelFormat = wxPixelFormatFor<Image>> clase wxPixelData< Image, PixelFormat >

Jerarquía:

Una plantilla de clase con implementaciones listas para usar para obtener acceso directo y eficiente a los datos internos de wxBitmap y wxImage a través de una interfaz estándar.

Es posible extender esta clase (interfaz) a otros tipos de contenido de imagen.

Implementado en Windows, GTK+ y macOS:

  • wxNativePixelData: Clase para acceder a los datos internos de wxBitmap sin canal alfa (RGB).
  • wxAlphaPixelData: Clase para acceder a los datos internos de wxBitmap con canal alfa (RGBA).

Implementado en todas partes:

  • wxImagePixelData: Clase para acceder a los datos internos de wxImage con canal alfa (RGBA).

Nota wxMSW: el acceso eficiente sólo es posible a los bits de los llamados mapas de bits independientes del dispositivo (DIB) bajo MSW. Para asegurarse de que wxBitmap utiliza un DIB internamente y no un mapa de bits dependiente del dispositivo (DDB), es necesario pasar una profundidad explícita a su constructor, es decir, 24 o 32, ya que por defecto wxBitmap crea un DDB de la profundidad de la pantalla.

Ejemplo:

wxBitmap bmp(width, size, 24); // explicit depth important under MSW
wxNativePixelData data(bmp);
if ( !data )
{
    // ... raw access to bitmap data unavailable, do something else ...
    return;
}
 
if ( data.GetWidth() < 20 || data.GetHeight() < 20 )
{
    // ... complain: the bitmap it too small ...
    return;
}
 
wxNativePixelData::Iterator p(data);
 
// we draw a (10, 10)-(20, 20) rect manually using the given r, g, b
p.Offset(data, 10, 10);
 
for ( int y = 0; y < 10; ++y )
{
    wxNativePixelData::Iterator rowStart = p;
 
    for ( int x = 0; x < 10; ++x, ++p )
    {
        p.Red() = r;
        p.Green() = g;
        p.Blue() = b;
    }
 
    p = rowStart;
    p.OffsetY(data, 1);
}

Clases

iterator.

Tipos

ImageType()

template<class Image , class PixelFormat = wxPixelFormatFor<Image>> typedef Image wxPixelData< Image, PixelFormat >::ImageType

El tipo de la clase con la que estamos trabajando.

Funciones miembro

wxPixelData()

template<class Image , class PixelFormat = wxPixelFormatFor<Image>> wxPixelData< Image, PixelFormat >::wxPixelData(Image & image)

Crea un objeto de datos de píxeles que representa la imagen completa.

wxPixelData()

template<class Image , class PixelFormat = wxPixelFormatFor<Image>> wxPixelData< Image, PixelFormat >::wxPixelData( Image & i, const wxRect & rect )

Crea un objeto de datos de píxeles que representa el área de la imagen definida por rect.

wxPixelData()

template<class Image , class PixelFormat = wxPixelFormatFor<Image>> wxPixelData< Image, PixelFormat >::wxPixelData( Image & i, const wxPoint & pt, const wxSize & sz )

Crea un objeto de datos de píxeles que representa el área de la imagen definida por pt y sz.

GetHeight()

template<class Image , class PixelFormat = wxPixelFormatFor<Image>> int wxPixelData< Image, PixelFormat >::GetHeight() const

Devuelve la altura de la región que representa este wxPixelData.

GetOrigin()

template<class Image , class PixelFormat = wxPixelFormatFor<Image>> wxPoint wxPixelData< Image, PixelFormat >::GetOrigin() const

Devuelve el origen de la región rectangular que representa este wxPixelData.

GetPixels()

template<class Image , class PixelFormat = wxPixelFormatFor<Image>> Iterator wxPixelData< Image, PixelFormat >::GetPixels() const

Devuelve el iterador que apunta al origen de la imagen.

GetRowStride()

template<class Image , class PixelFormat = wxPixelFormatFor<Image>> int wxPixelData< Image, PixelFormat >::GetRowStride() const

Devuelve la distancia entre dos filas.

GetSize()

template<class Image , class PixelFormat = wxPixelFormatFor<Image>> wxSize wxPixelData< Image, PixelFormat >::GetSize() const

Devuelve el área que este wxPixelData representa en la imagen.

GetWidth()

template<class Image , class PixelFormat = wxPixelFormatFor<Image>> int wxPixelData< Image, PixelFormat >::GetWidth() const

Devuelve el ancho de la región que representa este wxPixelData.

Operadores

operator bool()

template<class Image , class PixelFormat = wxPixelFormatFor<Image>> wxPixelData< Image, PixelFormat >::operator bool() const

Devuelve true si hemos podido acceder a los datos del mapa de bits con éxito.