wingdi.h


StretchDIBits

La función StretchDIBits copia los datos de colores de un rectángulo de pixels de un mapa de bits independiente del dispositivo (DIB) al rectángulo de destino especificado. Si el rectángulo de destino es más grande que el de origen, esta función estira las filas y columnas de los datos de color para ajustarlos al rectángulo de destino. Si el rectángulo de destino es más pequeño que el de origen, la función comprime las filas y columnas usando la operación de rastreo especificada.

Sintaxis

int StretchDIBits(
    HDC hdc,            // manipulador de contexto de dispositivo
    int XDest,          // coordenada x de la esquina superior izquierda del rectángulo de destino 
    int YDest,          // coordenada y de la esquina superior izquierda del rectángulo de destino
    int nDestWidth,     // anchura del rectángulo de destino
    int nDestHeight,    // altura del rectángulo de destino
    int XSrc,           // coordenada x de la esquina superior izquierda del rectángulo de origen 
    int YSrc,           // coordenada y de la esquina superior izquierda del rectángulo de origen 
    int nSrcWidth,      // anchura del rectángulo de origen
    int nSrcHeight,     // altura del rectángulo de origen
    CONST VOID *lpBits, // dirección de los bits del mapa de bits
    CONST BITMAPINFO * lpBitsInfo,  // dirección de los datos del mapa de bits
    UINT iUsage,        // uso 
    DWORD dwRop         // código de operación de rastreo
   );

Parámetros:

hdc: identifica el contexto de dispositivo.

XDest: especifica la coordenada x, en unidades lógicas, de la esquina superior izquierda del rectángulo de destino.

YDest: especifica la coordenada y, en unidades lógicas, de la esquina superior izquierda del rectángulo de destino.

nDestWidth: especifica la anchura, en unidades lógicas, del rectángulo de destino.

nDestHeight: especifica la altura, en unidades lógicas, del rectángulo de destino.

XSrc: especifica la coordenada x, en unidades lógicas, de la esquina superior izquierda del rectángulo de origen en el DIB.

YSrc: especifica la coordenada y, en unidades lógicas, de la esquina superior izquierda del rectángulo de origen en el DIB.

nSrcWidth: especifica la anchura, en unidades lógicas, del rectángulo de origen en el DIB.

nSrcHeight: especifica la altura, en unidades lógicas, del rectángulo de origen en el DIB.

lpBits: puntero a los bits del DIB, que está almacenado como un array de bytes.

lpBitsInfo: puntero a una estructura BITMAPINFO que contiene información sobre el DIB.

iUsage: especifica si el miembro bmiColors de la estructura BITMAPINFO fue suministrado y, en ese caso, si bmiColors contiene valores explícitos de rojo, verde y azul (RGB) o índices. El parámetro iUsage debe ser uno de los siguientes valores:

Valor Descripción
DIB_PAL_COLORS El array contiene índices de 16 bits dentro de la paleta lógica del contexto de dispositivo de origen.
DIB_RGB_COLORS La tabla de colores contiene valores literales RGB.

dwRop: especifica cómo se combinan los pixels de origen, el pincel actual del contexto de dispositivo de destino y los pixels de destino para crear la nueva imagen.

Valor de retorno

Si la función tiene éxito, el valor de retorno es el número de líneas de rastreo copiadas.

Si la función falla, el valor de retorno es GDI_ERROR. Para obtener información más detallada sobre el error, llamar a la función GetLastError.

Observaciones

El origen de un DIB de abajo-arriba es la esquina inferior izquierda; y el de un DIB de arriba-abajo es la esquina superior izquierda.

StretchDIBits crea una imagen especular de un mapa de bits si los signos de los parámetros nSrcWidth y nDestWidth, o de los parámetros nSrcHeight y nDestHeight son distintos. Si nSrcWidth y nDestWidth tienen distinto signo, la función crea una imagen especular del mapa de bits a lo largo del eje x. Si nSrcHeight y nDestHeight tienen distinto signo, la función crea una imagen especular del mapa de bits a lo largo del eje y.