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.