Clase CImage
CImage
proporciona compatibilidad mejorada con los mapas de bits, incluida la capacidad de cargar y guardar imágenes en formatos JPEG, GIF, BMP y Portable Network Graphics (PNG).
Importante
Esta clase y sus miembros no se pueden usar en las aplicaciones que se ejecutan en Windows Runtime.
Sintaxis
class CImage
Miembros
Constructores públicos
Nombre | Descripción |
---|---|
CImage::CImage |
Constructor . |
Métodos públicos
Nombre | Descripción |
---|---|
CImage::AlphaBlend |
Muestra mapas de bits que tienen píxeles transparentes o semitransparentes. |
CImage::Attach |
Adjunta un HBITMAP objeto a un CImage objeto . Se puede usar con mapas de bits de sección no DIB o mapas de bits de sección DIB. |
CImage::BitBlt |
Copia un mapa de bits desde el contexto del dispositivo de origen a este contexto de dispositivo actual. |
CImage::Create |
Crea un mapa de bits de sección DIB y lo adjunta al objeto construido CImage anteriormente. |
CImage::CreateEx |
Crea un mapa de bits de sección DIB (con parámetros adicionales) y lo adjunta al objeto construido CImage anteriormente. |
CImage::Destroy |
Desasocia el mapa de bits del CImage objeto y destruye el mapa de bits. |
CImage::Detach |
Desasocia el mapa de bits de un CImage objeto . |
CImage::Draw |
Copia un mapa de bits de un rectángulo de origen en un rectángulo de destino. Draw estira o comprime el mapa de bits para ajustarse a las dimensiones del rectángulo de destino, si es necesario, y controla la combinación alfa y los colores transparentes. |
CImage::GetBits |
Recupera un puntero a los valores de píxel reales del mapa de bits. |
CImage::GetBPP |
Recupera los bits por píxel. |
CImage::GetColorTable |
Recupera los valores de color rojo, verde, azul (RGB) de un intervalo de entradas de la tabla de colores. |
CImage::GetDC |
Recupera el contexto del dispositivo en el que se selecciona el mapa de bits actual. |
CImage::GetExporterFilterString |
Busca los formatos de imagen disponibles y sus descripciones. |
CImage::GetHeight |
Recupera el alto de la imagen actual en píxeles. |
CImage::GetImporterFilterString |
Busca los formatos de imagen disponibles y sus descripciones. |
CImage::GetMaxColorTableEntries |
Recupera el número máximo de entradas de la tabla de colores. |
CImage::GetPitch |
Recupera el tono de la imagen actual, en bytes. |
CImage::GetPixel |
Recupera el color del píxel especificado por x y y . |
CImage::GetPixelAddress |
Recupera la dirección de un píxel determinado. |
CImage::GetTransparentColor |
Recupera la posición del color transparente en la tabla de colores. |
CImage::GetWidth |
Recupera el ancho de la imagen actual en píxeles. |
CImage::IsDIBSection |
Determina si el mapa de bits adjunto es una sección DIB. |
CImage::IsIndexed |
Indica que los colores de un mapa de bits se asignan a una paleta indizada. |
CImage::IsNull |
Indica si un mapa de bits de origen está cargado actualmente. |
CImage::IsTransparencySupported |
Indica si la aplicación admite mapas de bits transparentes. |
CImage::Load |
Carga una imagen del archivo especificado. |
CImage::LoadFromResource |
Carga una imagen del recurso especificado. |
CImage::MaskBlt |
Combina los datos de color de los mapas de bits de origen y destino mediante la operación de máscara y trama especificadas. |
CImage::PlgBlt |
Realiza una transferencia de bloques de bits desde un rectángulo en un contexto de dispositivo de origen en un paralelismo en un contexto de dispositivo de destino. |
CImage::ReleaseDC |
Libera el contexto del dispositivo que se recuperó con CImage::GetDC . |
CImage::ReleaseGDIPlus |
Libera los recursos usados por GDI+. Se debe llamar a para liberar recursos creados por un objeto global CImage . |
CImage::Save |
Guarda una imagen como el tipo especificado. Save no puede especificar opciones de imagen. |
CImage::SetColorTable |
Establece los valores de color rojo, verde, azul RGB) en un intervalo de entradas de la tabla de colores de la sección DIB. |
CImage::SetPixel |
Establece el píxel en las coordenadas especificadas en el color especificado. |
CImage::SetPixelIndexed |
Establece el píxel en las coordenadas especificadas en el color del índice especificado de la paleta. |
CImage::SetPixelRGB |
Establece el píxel en las coordenadas especificadas en el valor rojo, verde, azul (RGB). |
CImage::SetTransparentColor |
Establece el índice del color que se va a tratar como transparente. Solo un color de una paleta puede ser transparente. |
CImage::StretchBlt |
Copia un mapa de bits de un rectángulo de origen en un rectángulo de destino, ajustando o comprimiendo el mapa de bits para ajustarlo a las dimensiones del rectángulo de destino, si es necesario. |
CImage::TransparentBlt |
Copia un mapa de bits con color transparente del contexto del dispositivo de origen a este contexto de dispositivo actual. |
Operadores públicos
Nombre | Descripción |
---|---|
CImage::operator HBITMAP |
Devuelve el controlador de Windows asociado al objeto CImage . |
Comentarios
CImage
toma mapas de bits que son secciones de mapas de bits independientes del dispositivo (DIB) o no; sin embargo, puede usar Create
o CImage::Load
solo con secciones DIB. Puede adjuntar un mapa de bits de sección no DIB a un CImage
objeto mediante Attach
, pero después no puede usar los métodos siguientes CImage
, que solo admiten mapas de bits de sección DIB:
Para determinar si un mapa de bits adjunto es una sección dib, llame a IsDibSection
.
Nota:
En Visual Studio .NET 2003, esta clase mantiene un recuento del número de CImage
objetos creados. Cada vez que el recuento va a 0, se llama automáticamente a la función GdiplusShutdown
para liberar los recursos usados por GDI+. Esto garantiza que los CImage
objetos creados directa o indirectamente por dll siempre se destruyen correctamente y que GdiplusShutdown
no se llama desde DllMain
.
Nota:
No se recomienda usar objetos globales CImage
en un archivo DLL. Si necesita usar un objeto global CImage
en un archivo DLL, llame CImage::ReleaseGDIPlus
a para liberar explícitamente los recursos usados por GDI+.
CImage
no se puede seleccionar en un nuevo CDC
. CImage
crea su propio HDC
para la imagen. Dado que solo se puede seleccionar en HBITMAP
uno HDC
en uno, el HBITMAP
asociado a no CImage
se puede seleccionar en otro HDC
. Si necesita CDC
, recupere el HDC
de CImage
y asígnelo a CDC::FromHandle
.
Ejemplos
// Get a CDC for the image
CDC* pDC = CDC::FromHandle(m_myImage.GetDC());
// Use pDC here
pDC->Rectangle(0, 40, 100, 50);
m_myImage.ReleaseDC();
Cuando se usa CImage
en un proyecto de MFC, tenga en cuenta qué funciones miembro del proyecto esperan un puntero a un CBitmap
objeto. Si quiere usar CImage
con esta función, como CMenu::AppendMenu
, use CBitmap::FromHandle
, pásela CImage
HBITMAP
y use el devuelto CBitmap*
.
void CMyDlg::OnRButtonDown(UINT nFlags, CPoint point)
{
UNREFERENCED_PARAMETER(nFlags);
CBitmap* pBitmap = CBitmap::FromHandle(m_myImage);
m_pmenuPop->AppendMenu(0, ID_BMPCOMMAND, pBitmap);
ClientToScreen(&point);
m_pmenuPop->TrackPopupMenu(TPM_RIGHTBUTTON | TPM_LEFTALIGN, point.x,
point.y, this);
}
A través CImage
de , tiene acceso a los bits reales de una sección de DIB. Puedes usar un CImage
objeto en cualquier lugar en el que hayas usado anteriormente una sección win32 HBITMAP
o DIB.
Puede usar CImage
desde MFC o ATL.
Nota:
Al crear un proyecto mediante CImage
, debe definir CString
antes de incluir atlimage.h
. Si el proyecto usa ATL sin MFC, incluya atlstr.h
antes de incluir atlimage.h
. Si el proyecto usa MFC (o si es un proyecto ATL con compatibilidad con MFC), incluya afxstr.h
antes de incluir atlimage.h
.
Del mismo modo, debe incluir atlimage.h
antes de incluir atlimpl.cpp
. Para lograr esto fácilmente, incluya atlimage.h
en pch.h
(stdafx.h
en Visual Studio 2017 y versiones anteriores).
Requisitos
Encabezado: atlimage.h
CImage::AlphaBlend
Muestra mapas de bits que tienen píxeles transparentes o semitransparentes.
BOOL AlphaBlend(
HDC hDestDC,
int xDest,
int yDest,
BYTE bSrcAlpha = 0xff,
BYTE bBlendOp = AC_SRC_OVER) const throw();
BOOL AlphaBlend(
HDC hDestDC,
const POINT& pointDest,
BYTE bSrcAlpha = 0xff,
BYTE bBlendOp = AC_SRC_OVER) const throw();
BOOL AlphaBlend(
HDC hDestDC,
int xDest,
int yDest,
int nDestWidth,
int nDestHeight,
int xSrc,
int ySrc,
int nSrcWidth,
int nSrcHeight,
BYTE bSrcAlpha = 0xff,
BYTE bBlendOp = AC_SRC_OVER);
BOOL AlphaBlend(
HDC hDestDC,
const RECT& rectDest,
const RECT& rectSrc,
BYTE bSrcAlpha = 0xff,
BYTE bBlendOp = AC_SRC_OVER);
Parámetros
hDestDC
Controlar el contexto del dispositivo de destino.
xDest
Coordenada x, en unidades lógicas, de la esquina superior izquierda del rectángulo de destino.
yDest
Coordenada x, en unidades lógicas, de la esquina superior izquierda del rectángulo de destino.
bSrcAlpha
Valor de transparencia alfa que se va a usar en todo el mapa de bits de origen. El 0xff predeterminado (255) supone que la imagen es opaca y que solo quiere usar valores alfa por píxel.
bBlendOp
Función de combinación alfa para mapas de bits de origen y destino, un valor alfa global que se aplicará a todo el mapa de bits de origen y la información de formato para el mapa de bits de origen. Actualmente, las funciones de combinación de origen y destino están limitadas a AC_SRC_OVER
.
pointDest
Referencia a una POINT
estructura que identifica la esquina superior izquierda del rectángulo de destino, en unidades lógicas.
nDestWidth
Ancho, en unidades lógicas, del rectángulo de destino.
nDestHeight
Alto, en unidades lógicas, del rectángulo de destino.
xSrc
Coordenada x lógica de la esquina superior izquierda del rectángulo de origen.
ySrc
Coordenada y lógica de la esquina superior izquierda del rectángulo de origen.
nSrcWidth
Ancho, en unidades lógicas, del rectángulo de origen.
nSrcHeight
Alto, en unidades lógicas, del rectángulo de origen.
rectDest
Referencia a una RECT
estructura, que identifica el destino.
rectSrc
Referencia a una estructura RECT
, que identifica el origen.
Valor devuelto
Si es correcta, su valor es distinto de cero. En caso contrario, es cero.
Comentarios
Los mapas de bits de combinación alfa admiten la combinación de colores por píxel.
Cuando bBlendOp
se establece en el valor predeterminado de AC_SRC_OVER
, el mapa de bits de origen se coloca sobre el mapa de bits de destino en función de los valores alfa de los píxeles de origen.
CImage::Attach
hBitmap
Se asocia a un CImage
objeto.
void Attach(HBITMAP hBitmap, DIBOrientation eOrientation = DIBOR_DEFAULT) throw();
Parámetros
hBitmap
Identificador de una HBITMAP
.
eOrientation
Especifica la orientación del mapa de bits. Puede ser uno de los siguientes:
DIBOR_DEFAULT
La orientación del mapa de bits viene determinada por el sistema operativo.DIBOR_BOTTOMUP
Las líneas del mapa de bits están en orden inverso. Esto hace queCImage::GetBits
devuelva un puntero cerca del final del búfer de mapa de bits yCImage::GetPitch
devolver un número negativo.DIBOR_TOPDOWN
Las líneas del mapa de bits están en orden superior a inferior. Esto hace queCImage::GetBits
devuelva un puntero al primer byte del búfer de mapa de bits yCImage::GetPitch
para devolver un número positivo.
Comentarios
El mapa de bits puede ser un mapa de bits de sección no DIB o un mapa de bits de sección DIB. Consulte IsDIBSection
para obtener una lista de métodos que solo puede usar con mapas de bits de sección DIB.
CImage::BitBlt
Copia un mapa de bits desde el contexto del dispositivo de origen a este contexto de dispositivo actual.
BOOL BitBlt(
HDC hDestDC,
int xDest,
int yDest,
DWORD dwROP = SRCCOPY) const throw();
BOOL BitBlt(
HDC hDestDC,
const POINT& pointDest,
DWORD dwROP = SRCCOPY) const throw();
BOOL BitBlt(
HDC hDestDC,
int xDest,
int yDest,
int nDestWidth,
int nDestHeight,
int xSrc,
int ySrc,
DWORD dwROP = SRCCOPY) const throw();
BOOL BitBlt(
HDC hDestDC,
const RECT& rectDest,
const POINT& pointSrc,
DWORD dwROP = SRCCOPY) const throw();
Parámetros
hDestDC
HDC
de destino.
xDest
Coordenada X lógica de la esquina superior izquierda del rectángulo de destino.
yDest
Coordenada y lógica de la esquina superior izquierda del rectángulo de destino.
dwROP
Operación de trama que se va a realizar. Los códigos de operación de trama definen exactamente cómo combinar los bits del origen, el destino y el patrón (según lo definido por el pincel seleccionado actualmente) para formar el destino. Consulte BitBlt
en Windows SDK para obtener una lista de otros códigos de operación ráster y sus descripciones.
pointDest
Estructura POINT
que indica la esquina superior izquierda del rectángulo de destino.
nDestWidth
Ancho, en unidades lógicas, del rectángulo de destino.
nDestHeight
Alto, en unidades lógicas, del rectángulo de destino.
xSrc
Coordenada x lógica de la esquina superior izquierda del rectángulo de origen.
ySrc
Coordenada y lógica de la esquina superior izquierda del rectángulo de origen.
rectDest
Estructura RECT
que indica el rectángulo de destino.
pointSrc
Estructura POINT
que indica la esquina superior izquierda del rectángulo de origen.
Valor devuelto
Es distinto de cero si es correcto. En caso contrario, es cero.
Comentarios
Para más información, consulte BitBlt
en Windows SDK.
CImage::CImage
Construye un objeto CImage
.
CImage() throw();
Comentarios
Una vez que haya construido el objeto, llame a Create
, Load
, LoadFromResource
o Attach
para adjuntar un mapa de bits al objeto.
Nota En Visual Studio, esta clase mantiene un recuento del número de objetos CImage
creados. Cada vez que el recuento va a 0, se llama automáticamente a la función GdiplusShutdown
para liberar los recursos usados por GDI+. Esto garantiza que los CImage
creados directa o indirectamente por archivos DLL siempre se destruyen correctamente y que no se llama a GdiplusShutdown
desde DllMain.
No se recomienda usar objetos globales CImage
en un archivo DLL. Si necesita usar un objeto global CImage
en un archivo DLL, llame CImage::ReleaseGDIPlus
a para liberar explícitamente los recursos usados por GDI+.
CImage::Create
Crea un CImage
mapa de bits y lo adjunta al objeto construido CImage
anteriormente.
BOOL Create(
int nWidth,
int nHeight,
int nBPP,
DWORD dwFlags = 0) throw();
Parámetros
nWidth
Ancho del mapa de CImage
mapa de bits, en píxeles.
nHeight
Alto del mapa de CImage
mapa de bits, en píxeles. Si nHeight
es positivo, el mapa de bits es un DIB de abajo arriba y su origen es la esquina inferior izquierda. Si nHeight
es negativo, el mapa de bits es un DIB de arriba abajo y su origen es la esquina superior izquierda.
nBPP
Números de bits por píxel en el mapa de bits. Normalmente, 4, 8, 16, 24 o 32. Puede ser 1 para mapas de bits monocromáticos o máscaras.
dwFlags
Especifica si el objeto de mapa de bits tiene un canal alfa. Puede ser una combinación de cero o más de los valores siguientes:
createAlphaChannel
Solo se puede usar sinBPP
es 32 yeCompression
esBI_RGB
. Si se especifica, la imagen creada tiene un valor alfa (transparencia) para cada píxel, almacenado en el 4º byte de cada píxel (sin usar en una imagen que no sea alfa de 32 bits). Este canal alfa se usa automáticamente al llamar aCImage::AlphaBlend
.
Nota:
En las llamadas a CImage::Draw
, las imágenes con un canal alfa se combinan automáticamente con el destino.
Valor devuelto
Si es correcta, su valor es distinto de cero. En caso contrario, es cero.
CImage::CreateEx
Crea un CImage
mapa de bits y lo adjunta al objeto construido CImage
anteriormente.
BOOL CreateEx(
int nWidth,
int nHeight,
int nBPP,
DWORD eCompression,
const DWORD* pdwBitmasks = NULL,
DWORD dwFlags = 0) throw();
Parámetros
nWidth
Ancho del mapa de CImage
mapa de bits, en píxeles.
nHeight
Alto del mapa de CImage
mapa de bits, en píxeles. Si nHeight
es positivo, el mapa de bits es un DIB de abajo arriba y su origen es la esquina inferior izquierda. Si nHeight
es negativo, el mapa de bits es un DIB de arriba abajo y su origen es la esquina superior izquierda.
nBPP
Números de bits por píxel en el mapa de bits. Normalmente, 4, 8, 16, 24 o 32. Puede ser 1 para mapas de bits monocromáticos o máscaras.
eCompression
Especifica el tipo de compresión de un mapa de bits inferior comprimido (no se pueden comprimir los DIB de arriba abajo). Puede ser uno de los siguientes valores:
BI_RGB
El formato no está comprimido. Especificar este valor al llamarCImage::CreateEx
a es equivalente a llamar aCImage::Create
.BI_BITFIELDS
El formato es sin comprimir y la tabla de colores consta de tresDWORD
máscaras de color que especifican los componentes rojo, verde y azul, respectivamente, de cada píxel. Esto es válido cuando se usa con mapas de bits de 16 y 32 bpp.
pdwBitfields
Solo se usa si eCompression
se establece BI_BITFIELDS
en ; de lo contrario, debe ser NULL
. Puntero a una matriz de tres DWORD
máscaras de bits, especificando qué bits de cada píxel se usan para los componentes rojo, verde y azul del color, respectivamente. Para obtener información sobre las restricciones de los campos de bits, consulte BITMAPINFOHEADER
en Windows SDK.
dwFlags
Especifica si el objeto de mapa de bits tiene un canal alfa. Puede ser una combinación de cero o más de los valores siguientes:
createAlphaChannel
Solo se puede usar sinBPP
es 32 yeCompression
esBI_RGB
. Si se especifica, la imagen creada tiene un valor alfa (transparencia) para cada píxel, almacenado en el 4º byte de cada píxel (sin usar en una imagen que no sea alfa de 32 bits). Este canal alfa se usa automáticamente al llamar aCImage::AlphaBlend
.Nota:
En las llamadas a
CImage::Draw
, las imágenes con un canal alfa se combinan automáticamente con el destino.
Valor devuelto
TRUE
si se realiza correctamente. De lo contrario, FALSE
es .
Ejemplo
En el ejemplo siguiente se crea un mapa de bits de 100 x 100 píxeles, con 16 bits para codificar cada píxel. En un píxel de 16 bits determinado, los bits 0-3 codifican el componente rojo, los bits 4-7 codifican verde y los bits 8-11 codifican azul. Los 4 bits restantes no se usan.
DWORD adwBitmasks[3] = { 0x0000000f, 0x000000f0, 0x00000f00 };
m_myImage.CreateEx(100, 100, 16, BI_BITFIELDS, adwBitmasks, 0);
CImage::Destroy
Desasocia el mapa de bits del CImage
objeto y destruye el mapa de bits.
void Destroy() throw();
CImage::Detach
Desasocia el mapa de bits de un CImage
objeto.
HBITMAP Detach() throw();
Valor devuelto
Identificador del mapa de bits desasociado o NULL
si no se adjunta ningún mapa de bits.
CImage::Draw
Copia un mapa de bits desde el contexto del dispositivo de origen a este contexto de dispositivo actual.
BOOL Draw(
HDC hDestDC,
int xDest,
int yDest,
int nDestWidth,
int nDestHeight,
int xSrc,
int ySrc,
int nSrcWidth,
int nSrcHeight) const throw();
BOOL Draw(
HDC hDestDC,
const RECT& rectDest,
const RECT& rectSrc) const throw();
BOOL Draw(
HDC hDestDC,
int xDest,
int yDest) const throw();
BOOL Draw(
HDC hDestDC,
const POINT& pointDest) const throw();
BOOL Draw(
HDC hDestDC,
int xDest,
int yDest,
int nDestWidth,
int nDestHeight) const throw();
BOOL Draw(
HDC hDestDC,
const RECT& rectDest) const throw();
Parámetros
hDestDC
Controlar el contexto del dispositivo de destino.
xDest
Coordenada x, en unidades lógicas, de la esquina superior izquierda del rectángulo de destino.
yDest
Coordenada x, en unidades lógicas, de la esquina superior izquierda del rectángulo de destino.
nDestWidth
Ancho, en unidades lógicas, del rectángulo de destino.
nDestHeight
Alto, en unidades lógicas, del rectángulo de destino.
xSrc
Coordenada x, en unidades lógicas, de la esquina superior izquierda del rectángulo de origen.
ySrc
Coordenada y, en unidades lógicas, de la esquina superior izquierda del rectángulo de origen.
nSrcWidth
Ancho, en unidades lógicas, del rectángulo de origen.
nSrcHeight
Alto, en unidades lógicas, del rectángulo de origen.
rectDest
Referencia a una RECT
estructura, que identifica el destino.
rectSrc
Referencia a una estructura RECT
, que identifica el origen.
pointDest
Referencia a una POINT
estructura que identifica la esquina superior izquierda del rectángulo de destino, en unidades lógicas.
Valor devuelto
Si es correcta, su valor es distinto de cero. En caso contrario, es cero.
Comentarios
Draw
realiza la misma operación que StretchBlt
, a menos que la imagen contenga un color transparente o un canal alfa. En ese caso, Draw
realiza la misma operación TransparentBlt
que o AlphaBlend
según sea necesario.
Para las versiones de que no especifican un rectángulo de Draw
origen, toda la imagen de origen es el valor predeterminado. Para la versión de Draw
que no especifica un tamaño para el rectángulo de destino, el tamaño de la imagen de origen es el valor predeterminado y no se produce ningún ajuste o reducción.
CImage::GetBits
Recupera un puntero a los valores de bits reales de un píxel determinado en un mapa de bits.
void* GetBits() throw();
Valor devuelto
Puntero al búfer de mapa de bits. Si el mapa de bits es un DIB de abajo arriba, el puntero apunta cerca del final del búfer. Si el mapa de bits es un DIB de arriba abajo, el puntero apunta al primer byte del búfer.
Comentarios
Con este puntero, junto con el valor devuelto por GetPitch
, puede buscar y cambiar píxeles individuales en una imagen.
Nota:
Este método solo admite mapas de bits de sección DIB; por lo tanto, se accede a los píxeles de un CImage
objeto de la misma manera que los píxeles de una sección de DIB. El puntero devuelto apunta al píxel en la ubicación (0, 0).
CImage::GetBPP
Recupera el valor de bits por píxel.
int GetBPP() const throw();
Valor devuelto
Número de bits por píxel.
Comentarios
Este valor determina el número de bits que definen cada píxel y el número máximo de colores en el mapa de bits.
Los bits por píxel suelen ser 1, 4, 8, 16, 24 o 32. Vea el biBitCount
miembro de BITMAPINFOHEADER
en el Windows SDK para obtener más información sobre este valor.
CImage::GetColorTable
Recupera valores de color rojo, verde, azul (RGB) de un intervalo de entradas en la paleta de la sección DIB.
void GetColorTable(
UINT iFirstColor,
UINT nColors,
RGBQUAD* prgbColors) const throw();
Parámetros
iFirstColor
Índice de la tabla de colores de la primera entrada que se recuperará.
nColors
Número de entradas de tabla de colores que se van a recuperar.
prgbColors
Puntero a la matriz de estructuras para recuperar las entradas de RGBQUAD
la tabla de colores.
CImage::GetDC
Recupera el contexto del dispositivo que tiene actualmente la imagen seleccionada en él.
HDC GetDC() const throw();
Valor devuelto
Identificador de un contexto de dispositivo.
Comentarios
Para cada llamada a GetDC
, debe tener una llamada posterior a ReleaseDC
.
CImage::GetExporterFilterString
Busca formatos de imagen disponibles para guardar imágenes.
static HRESULT GetExporterFilterString(
CSimpleString& strExporters,
CSimpleArray<GUID>& aguidFileTypes,
LPCTSTR pszAllFilesDescription = NULL,
DWORD dwExclude = excludeDefaultSave,
TCHAR chSeparator = _T('|'));
Parámetros
strExporters
Referencia a un objeto CSimpleString
. Consulte Comentarios para más información.
aguidFileTypes
Matriz de GUID, con cada elemento correspondiente a uno de los tipos de archivo de la cadena. En el ejemplo pszAllFilesDescription
siguiente, aguidFileTypes[0]
es GUID_NULL
y los valores de matriz restantes son los formatos de archivo de imagen admitidos por el sistema operativo actual.
Nota:
Para obtener una lista completa de constantes, consulte Constantes de formato de archivo de imagen en Windows SDK.
pszAllFilesDescription
Si este parámetro no es NULL
, la cadena de filtro tendrá un filtro adicional al principio de la lista. Este filtro tendrá el valor actual de pszAllFilesDescription
para su descripción y acepta archivos de cualquier extensión compatible con cualquier otro exportador de la lista.
Por ejemplo:
//First filter in the list will be titled "All Image Files", and
//will accept files with any extension supported by any exporter.
CImage::GetExporterFilterString(
strExporters, aguidFileTypes,
_T("All Image Files"));
dwExclude
Conjunto de marcas de bits que especifican los tipos de archivo que se van a excluir de la lista. Las marcas permitidas son:
excludeGIF
= 0x01 Excluye archivos GIF.excludeBMP
= 0x02 Excluye archivos BMP (mapa de bits de Windows).excludeEMF
= 0x04 excluye archivos EMF (metarchivo mejorado).excludeWMF
= 0x08 excluye archivos WMF (metarchivo de Windows).excludeJPEG
= 0x10 Excluye archivos JPEG.excludePNG
= 0x20 Excluye archivos PNG.excludeTIFF
= 0x40 Excluye archivos TIFF.excludeIcon
= 0x80 excluye archivos ICO (icono de Windows).excludeOther
= 0x80000000 Excluye cualquier otro tipo de archivo que no aparezca anteriormente.excludeDefaultLoad
= 0 Para la carga, todos los tipos de archivo se incluyen de forma predeterminada.excludeDefaultSave
=excludeIcon | excludeEMF | excludeWMF
Para guardar, estos archivos se excluyen de forma predeterminada porque normalmente tienen requisitos especiales.
chSeparator
Separador utilizado entre los formatos de imagen. Consulte Comentarios para más información.
Valor devuelto
Un HRESULT
estándar.
Comentarios
Puede pasar la cadena de formato resultante al objeto MFC CFileDialog
para exponer las extensiones de archivo de los formatos de imagen disponibles en el cuadro de diálogo Guardar como archivo.
El parámetro strExporter
tiene el formato:
file description 0|*.ext0|file description 1|*.ext1|...file description N|*.extN||
donde |
es el carácter separador especificado por chSeparator
. Por ejemplo:
"Bitmap format|*.bmp|JPEG format|*.jpg|GIF format|*.gif|PNG format|*.png||"
Use el separador |
predeterminado si pasa esta cadena a un objeto MFC CFileDialog
. Use el separador '\0'
null si pasa esta cadena a un cuadro de diálogo común Guardar archivo.
CImage::GetHeight
Recupera el alto, en píxeles, de una imagen.
int GetHeight() const throw();
Valor devuelto
Alto, en píxeles, de una imagen.
CImage::GetImporterFilterString
Busca los formatos de imagen disponibles para cargar imágenes.
static HRESULT GetImporterFilterString(
CSimpleString& strImporters,
CSimpleArray<GUID>& aguidFileTypes,
LPCTSTR pszAllFilesDescription = NULL,
DWORD dwExclude = excludeDefaultLoad,
TCHAR chSeparator = _T('|'));
Parámetros
strImporters
Referencia a un objeto CSimpleString
. Consulte Comentarios para más información.
aguidFileTypes
Matriz de GUID, con cada elemento correspondiente a uno de los tipos de archivo de la cadena. En el ejemplo de pszAllFilesDescription
siguiente, *aguidFileTypes[0]*
es GUID_NULL
con los valores de matriz restantes son los formatos de archivo de imagen admitidos por el sistema operativo actual.
Nota:
Para obtener una lista completa de constantes, consulte Constantes de formato de archivo de imagen en Windows SDK.
pszAllFilesDescription
Si este parámetro no es NULL
, la cadena de filtro tendrá un filtro adicional al principio de la lista. Este filtro tendrá el valor actual de pszAllFilesDescription
para su descripción y acepta archivos de cualquier extensión compatible con cualquier otro exportador de la lista.
Por ejemplo:
//First filter in the list will be titled "All Image Files", and
//will accept files with any extension supported by any importer.
CImage::GetImporterFilterString(
strImporters, aguidFileTypes,
_T("All Image Files"));
dwExclude
Conjunto de marcas de bits que especifican los tipos de archivo que se van a excluir de la lista. Las marcas permitidas son:
excludeGIF
= 0x01 Excluye archivos GIF.excludeBMP
= 0x02 Excluye archivos BMP (mapa de bits de Windows).excludeEMF
= 0x04 excluye archivos EMF (metarchivo mejorado).excludeWMF
= 0x08 excluye archivos WMF (metarchivo de Windows).excludeJPEG
= 0x10 Excluye archivos JPEG.excludePNG
= 0x20 Excluye archivos PNG.excludeTIFF
= 0x40 Excluye archivos TIFF.excludeIcon
= 0x80 excluye archivos ICO (icono de Windows).excludeOther
= 0x80000000 Excluye cualquier otro tipo de archivo que no aparezca anteriormente.excludeDefaultLoad
= 0 Para la carga, todos los tipos de archivo se incluyen de forma predeterminada.excludeDefaultSave
=excludeIcon | excludeEMF | excludeWMF
Para guardar, estos archivos se excluyen de forma predeterminada porque normalmente tienen requisitos especiales.
chSeparator
Separador utilizado entre los formatos de imagen. Consulte Comentarios para más información.
Comentarios
Puede pasar la cadena de formato resultante al objeto CFileDialog
MFC para exponer las extensiones de archivo de los formatos de imagen disponibles en el cuadro de diálogo archivo abierto archivos.
El parámetro strImporter
tiene el formato:
'file description 0| .ext0| descripción del archivo 1|. ext1|... descripción del archivo N|*.extN||
donde |
es el carácter separador especificado por chSeparator
. Por ejemplo:
"Bitmap format|*.bmp|JPEG format|*.jpg|GIF format|*.gif|PNG format|*.png||"
Use el separador |
predeterminado si pasa esta cadena a un objeto MFC CFileDialog
. Use el separador null '\0'
si pasa esta cadena a un cuadro de diálogo archivo abierto común.
CImage::GetMaxColorTableEntries
Recupera el número máximo de entradas de la tabla de colores.
int GetMaxColorTableEntries() const throw();
Valor devuelto
Número de entradas de la memoria caché.
Comentarios
Este método solo admite mapas de bits de sección DIB.
CImage::GetPitch
Recupera el tono de una imagen.
int GetPitch() const throw();
Valor devuelto
Tono de la imagen. Si el valor devuelto es negativo, el mapa de bits es una DIB de abajo hacia arriba y su origen es la esquina inferior izquierda. Si el valor devuelto es positivo, el mapa de bits es una DIB de arriba abajo y su origen es la esquina superior izquierda.
Comentarios
El tono es la distancia, en bytes, entre dos direcciones de memoria que representan el principio de una línea de mapa de bits y el principio de la siguiente línea de mapa de bits. Dado que el tono se mide en bytes, el tono de una imagen le ayuda a determinar el formato de píxel. El tono también puede incluir memoria adicional, reservada para el mapa de bits.
Use GetPitch
con GetBits
para buscar píxeles individuales de una imagen.
Nota:
Este método solo admite mapas de bits de sección DIB.
CImage::GetPixel
Recupera el color del píxel en la ubicación especificada por x e y.
COLORREF GetPixel(int x, int y) const throw();
Parámetros
x
Coordenada x del píxel.
y
Coordenada y del píxel.
Valor devuelto
Valor rojo, verde, azul (RGB) del píxel. Si el píxel está fuera de la región de recorte actual, el valor devuelto es CLR_INVALID
.
CImage::GetPixelAddress
Recupera la dirección exacta de un píxel.
void* GetPixelAddress(int x, int y) throw();
Parámetros
x
Coordenada x del píxel.
y
Coordenada y del píxel.
Comentarios
La dirección se determina según las coordenadas de un píxel, el tono del mapa de bits y los bits por píxel.
Para los formatos que tienen menos de 8 bits por píxel, este método devuelve la dirección del byte que contiene el píxel. Por ejemplo, si el formato de imagen tiene 4 bits por píxel, GetPixelAddress
devuelve la dirección del primer píxel del byte y debe calcular 2 píxeles por byte.
Nota:
Este método solo admite mapas de bits de sección DIB.
CImage::GetTransparentColor
Recupera la ubicación indizada del color transparente en la paleta de colores.
LONG GetTransparentColor() const throw();
Valor devuelto
Índice del color transparente.
CImage::GetWidth
Recupera el ancho, en píxeles, de una imagen.
int GetWidth() const throw();
Valor devuelto
Ancho del mapa de bits, en píxeles.
CImage::IsDIBSection
Determina si el mapa de bits adjunto es una sección DIB.
bool IsDIBSection() const throw();
Valor devuelto
TRUE
si el mapa de bits adjunto es una sección DIB. De lo contrario, FALSE
es .
Comentarios
Si el mapa de bits no es una sección DIB, no puede usar los siguientes métodos CImage
, que solo admiten mapas de bits de sección DIB:
CImage::IsIndexed
Determina si los píxeles de un mapa de bits se asignan a una paleta de colores.
bool IsIndexed() const throw();
Valor devuelto
TRUE
si se indexa; de lo FALSE
.
Comentarios
Este método solo devuelve TRUE
si el mapa de bits es de 8 bits (256 colores) o menos.
Nota:
Este método solo admite mapas de bits de sección DIB.
CImage::IsNull
Determina si un mapa de bits está cargado actualmente.
bool IsNull() const throw();
Comentarios
Este método devuelve TRUE
si un mapa de bits no está cargado actualmente; de lo contrario FALSE
.
CImage::IsTransparencySupported
Indica si la aplicación admite mapas de bits transparentes.
static BOOL IsTransparencySupported() throw();
Valor devuelto
Distinto de cero si la plataforma actual admite transparencia. De lo contrario, 0.
Comentarios
Si el valor devuelto es distinto de cero y se admite la transparencia, se admite una llamada a AlphaBlend
, TransparentBlt
o Draw
controlará los colores transparentes.
CImage::Load
Carga una imagen.
HRESULT Load(LPCTSTR pszFileName) throw();
HRESULT Load(IStream* pStream) throw();
Parámetros
pszFileName
Puntero a una cadena que contiene el nombre del archivo de imagen que se cargará.
pStream
Puntero a una cadena que contiene el nombre del archivo de imagen que se cargará.
Valor devuelto
Un HRESULT
estándar.
Comentarios
Carga la imagen especificada por pszFileName
o pStream
.
Los tipos de imagen válidos son BMP, GIF, JPEG, PNG y TIFF.
CImage::LoadFromResource
Carga una imagen de un BITMAP
recurso.
void LoadFromResource(
HINSTANCE hInstance,
LPCTSTR pszResourceName) throw();
void LoadFromResource(
HINSTANCE hInstance,
UINT nIDResource) throw();
Parámetros
hInstance
Controle a una instancia del módulo que contiene la imagen que se va a cargar.
pszResourceName
Puntero a la cadena que contiene el nombre del recurso que contiene la imagen que se va a cargar.
nIDResource
Id. del recurso que se va a cargar.
Comentarios
El recurso debe ser de tipo BITMAP
.
CImage::MaskBlt
Combina los datos de color de los mapas de bits de origen y destino mediante la operación de máscara y trama especificadas.
BOOL MaskBlt(
HDC hDestDC,
int xDest,
int yDest,
int nDestWidth,
int nDestHeight,
int xSrc,
int ySrc,
HBITMAP hbmMask,
int xMask,
int yMask,
DWORD dwROP = SRCCOPY) const throw();
BOOL MaskBlt(
HDC hDestDC,
const RECT& rectDest,
const POINT& pointSrc,
HBITMAP hbmMask,
const POINT& pointMask,
DWORD dwROP = SRCCOPY) const throw();
BOOL MaskBlt(
HDC hDestDC,
int xDest,
int yDest,
HBITMAP hbmMask,
DWORD dwROP = SRCCOPY) const throw();
BOOL MaskBlt(
HDC hDestDC,
const POINT& pointDest,
HBITMAP hbmMask,
DWORD dwROP = SRCCOPY) const throw();
Parámetros
hDestDC
Identificador del módulo cuyo ejecutable contiene el recurso.
xDest
Coordenada x, en unidades lógicas, de la esquina superior izquierda del rectángulo de destino.
yDest
Coordenada x, en unidades lógicas, de la esquina superior izquierda del rectángulo de destino.
nDestWidth
Ancho, en unidades lógicas, del rectángulo de destino y del mapa de bits de origen.
nDestHeight
Alto, en unidades lógicas, del rectángulo de destino y del mapa de bits de origen.
xSrc
Coordenada x lógica de la esquina superior izquierda del mapa de bits de origen.
ySrc
Coordenada y lógica de la esquina superior izquierda del mapa de bits de origen.
hbmMask
Control para el mapa de bits de máscara monocromática combinado con el mapa de bits de color en el contexto del dispositivo de origen.
xMask
Desplazamiento horizontal de píxeles para el mapa de bits de máscara especificado por el hbmMask
parámetro.
yMask
Desplazamiento de píxel vertical para el mapa de bits de máscara especificado por el hbmMask
parámetro.
dwROP
Especifica los códigos de operación de trama ternario en primer plano y en segundo plano que usa el método para controlar la combinación de datos de origen y destino. El código de operación de trama en segundo plano se almacena en el byte de orden superior de la palabra de orden superior de este valor; El código de operación de trama en primer plano se almacena en el byte de orden inferior de la palabra de orden superior de este valor; se omite la palabra de orden inferior de este valor y debe ser cero. Para obtener una explicación de primer plano y de fondo en el contexto de este método, consulte MaskBlt
en Windows SDK. Para obtener una lista de códigos de operación ráster comunes, consulte BitBlt
en Windows SDK.
rectDest
Referencia a una RECT
estructura, que identifica el destino.
pointSrc
Estructura POINT
que indica la esquina superior izquierda del rectángulo de origen.
pointMask
Estructura POINT
que indica la esquina superior izquierda del mapa de bits de máscara.
pointDest
Referencia a una POINT
estructura que identifica la esquina superior izquierda del rectángulo de destino, en unidades lógicas.
Valor devuelto
Distinto de cero si se realiza correctamente; de lo contrario, es 0.
Comentarios
Este método solo se aplica a Windows NT, versiones 4.0 y posteriores.
CImage::operator HBITMAP
Use este operador para obtener el identificador GDI de Windows adjunto del CImage
objeto. Este operador es un operador de conversión que admite el uso directo de un objeto HBITMAP
.
CImage::PlgBlt
Realiza una transferencia de bloques de bits desde un rectángulo en un contexto de dispositivo de origen en un paralelismo en un contexto de dispositivo de destino.
BOOL PlgBlt(
HDC hDestDC,
const POINT* pPoints,
HBITMAP hbmMask = NULL) const throw();
BOOL PlgBlt(
HDC hDestDC,
const POINT* pPoints,
int xSrc,
int ySrc,
int nSrcWidth,
int nSrcHeight,
HBITMAP hbmMask = NULL,
int xMask = 0,
int yMask = 0) const throw();
BOOL PlgBlt(
HDC hDestDC,
const POINT* pPoints,
const RECT& rectSrc,
HBITMAP hbmMask = NULL,
const POINT& pointMask = CPoint(0, 0)) const throw();
Parámetros
hDestDC
Controlar el contexto del dispositivo de destino.
pPoints
Puntero a una matriz de tres puntos en el espacio lógico que identifica tres esquinas del paralelograma de destino. La esquina superior izquierda del rectángulo de origen se asigna al primer punto de esta matriz, la esquina superior derecha al segundo punto de esta matriz y la esquina inferior izquierda al tercer punto. La esquina inferior derecha del rectángulo de origen se asigna al cuarto punto implícito del paralelismo.
hbmMask
Identificador de un mapa de bits monocromo opcional que se usa para enmascarar los colores del rectángulo de origen.
xSrc
Coordenada x, en unidades lógicas, de la esquina superior izquierda del rectángulo de origen.
ySrc
Coordenada y, en unidades lógicas, de la esquina superior izquierda del rectángulo de origen.
nSrcWidth
Ancho, en unidades lógicas, del rectángulo de origen.
nSrcHeight
Alto, en unidades lógicas, del rectángulo de origen.
xMask
Coordenada x de la esquina superior izquierda del mapa de bits monocromo.
yMask
Coordenada y de la esquina superior izquierda del mapa de bits monocromo.
rectSrc
Referencia a una RECT
estructura que especifica las coordenadas del rectángulo de origen.
pointMask
Estructura POINT
que indica la esquina superior izquierda del mapa de bits de máscara.
Valor devuelto
Distinto de cero si se realiza correctamente; de lo contrario, es 0.
Comentarios
Si hbmMask
identifica un mapa de bits monocromático válido, PlgBit
usa este mapa de bits para enmascarar los bits de datos de color del rectángulo de origen.
Este método solo se aplica a Windows NT, versiones 4.0 y posteriores. Consulte PlgBlt
en el Windows SDK para obtener información más detallada.
CImage::ReleaseDC
Libera el contexto del dispositivo.
void ReleaseDC() const throw();
Comentarios
Dado que solo se puede seleccionar un mapa de bits en un contexto de dispositivo a la vez, debe llamar a ReleaseDC
para cada llamada a GetDC
.
CImage::ReleaseGDIPlus
Libera los recursos usados por GDI+.
void ReleaseGDIPlus() throw();
Comentarios
Se debe llamar a este método para liberar recursos asignados por un objeto global CImage
. Vea CImage::CImage
.
CImage::Save
Guarda una imagen en el flujo o archivo especificados en el disco.
HRESULT Save(
IStream* pStream,
REFGUID guidFileType) const throw();
HRESULT Save(
LPCTSTR pszFileName,
REFGUID guidFileType = GUID_NULL) const throw();
Parámetros
pStream
Puntero a un objeto COM IStream que contiene los datos de la imagen de archivo.
pszFileName
Puntero al nombre de archivo de la imagen.
guidFileType
Tipo de archivo que se va a guardar la imagen como. Puede ser uno de los siguientes:
ImageFormatBMP
Imagen de mapa de bits sin comprimir.ImageFormatPNG
Imagen comprimida de gráfico de red portátil (PNG).ImageFormatJPEG
Una imagen comprimida JPEG.ImageFormatGIF
Una imagen comprimida gif.
Nota:
Para obtener una lista completa de constantes, consulte Constantes de formato de archivo de imagen en Windows SDK.
Valor devuelto
Un HRESULT
estándar.
Comentarios
Llame a esta función para guardar la imagen con un nombre y un tipo especificados. Si el guidFileType
parámetro no está incluido, la extensión de archivo del nombre de archivo se usará para determinar el formato de imagen. Si no se proporciona ninguna extensión, la imagen se guardará en formato BMP.
CImage::SetColorTable
Establece los valores de color rojo, verde, azul (RGB) para un intervalo de entradas en la paleta de la sección DIB.
void SetColorTable(
UINT iFirstColor,
UINT nColors,
const RGBQUAD* prgbColors) throw();
Parámetros
iFirstColor
Índice de la tabla de colores de la primera entrada que se establece.
nColors
Número de entradas de tabla de colores que se van a recuperar.
prgbColors
Puntero a la matriz de estructuras RGBQUAD
para establecer las entradas de la tabla de colores.
Comentarios
Este método solo admite mapas de bits de sección DIB.
CImage::SetPixel
Establece el color de un píxel en una ubicación determinada del mapa de bits.
void SetPixel(int x, int y, COLORREF color) throw();
Parámetros
x
Ubicación horizontal del píxel que se va a establecer.
y
Ubicación vertical del píxel que se va a establecer.
color
Color en el que se establece el píxel.
Comentarios
Este método produce un error si las coordenadas de píxel están fuera de la región de recorte seleccionada.
CImage::SetPixelIndexed
Establece el color de píxel en el color situado en iIndex
la paleta de colores.
void SetPixelIndexed(int x, int y, int iIndex) throw();
Parámetros
x
Ubicación horizontal del píxel que se va a establecer.
y
Ubicación vertical del píxel que se va a establecer.
iIndex
Índice de un color en la paleta de colores.
CImage::SetPixelRGB
Establece el píxel en las ubicaciones especificadas por x
y y
en los colores indicados por r
, g
y b
, en una imagen roja, verde, azul (RGB).
void SetPixelRGB(
int x,
int y,
BYTE r,
BYTE g,
BYTE b) throw();
Parámetros
x
Ubicación horizontal del píxel que se va a establecer.
y
Ubicación vertical del píxel que se va a establecer.
r
Intensidad del color rojo.
g
Intensidad del color verde.
b
Intensidad del color azul.
Comentarios
Los parámetros rojo, verde y azul están representados por un número entre 0 y 255. Si establece los tres parámetros en cero, el color resultante combinado es negro. Si establece los tres parámetros en 255, el color resultante combinado es blanco.
CImage::SetTransparentColor
Establece un color en una ubicación indizada determinada como transparente.
LONG SetTransparentColor(LONG iTransparentColor) throw();
Parámetros
iTransparentColor
Índice, en una paleta de colores, del color que se establecerá en transparente. Si es -1, no se establece ningún color en transparente.
Valor devuelto
Índice del color establecido previamente como transparente.
CImage::StretchBlt
Copia un mapa de bits desde el contexto del dispositivo de origen a este contexto de dispositivo actual.
BOOL StretchBlt(
HDC hDestDC,
int xDest,
int yDest,
int nDestWidth,
int nDestHeight,
DWORD dwROP = SRCCOPY) const throw();
BOOL StretchBlt(
HDC hDestDC,
const RECT& rectDest,
DWORD dwROP = SRCCOPY) const throw();
BOOL StretchBlt(
HDC hDestDC,
int xDest,
int yDest,
int nDestWidth,
int nDestHeight,
int xSrc,
int ySrc,
int nSrcWidth,
int nSrcHeight,
DWORD dwROP = SRCCOPY) const throw();
BOOL StretchBlt(
HDC hDestDC,
const RECT& rectDest,
const RECT& rectSrc,
DWORD dwROP = SRCCOPY) const throw();
Parámetros
hDestDC
Controlar el contexto del dispositivo de destino.
xDest
Coordenada x, en unidades lógicas, de la esquina superior izquierda del rectángulo de destino.
yDest
Coordenada x, en unidades lógicas, de la esquina superior izquierda del rectángulo de destino.
nDestWidth
Ancho, en unidades lógicas, del rectángulo de destino.
nDestHeight
Alto, en unidades lógicas, del rectángulo de destino.
dwROP
Operación de trama que se va a realizar. Los códigos de operación de trama definen exactamente cómo combinar los bits del origen, el destino y el patrón (según lo definido por el pincel seleccionado actualmente) para formar el destino. Consulte BitBlt
en Windows SDK para obtener una lista de otros códigos de operación ráster y sus descripciones.
rectDest
Referencia a una RECT
estructura, que identifica el destino.
xSrc
Coordenada x, en unidades lógicas, de la esquina superior izquierda del rectángulo de origen.
ySrc
Coordenada y, en unidades lógicas, de la esquina superior izquierda del rectángulo de origen.
nSrcWidth
Ancho, en unidades lógicas, del rectángulo de origen.
nSrcHeight
Alto, en unidades lógicas, del rectángulo de origen.
rectSrc
Referencia a una estructura RECT
, que identifica el origen.
Valor devuelto
Distinto de cero si se realiza correctamente; de lo contrario, es 0.
Comentarios
Para más información, consulte StretchBlt
en Windows SDK.
CImage::TransparentBlt
Copia un mapa de bits desde el contexto del dispositivo de origen a este contexto de dispositivo actual.
BOOL TransparentBlt(
HDC hDestDC,
int xDest,
int yDest,
int nDestWidth,
int nDestHeight,
UINT crTransparent = CLR_INVALID) const throw();
BOOL TransparentBlt(
HDC hDestDC,
const RECT& rectDest,
UINT crTransparent = CLR_INVALID) const throw();
BOOL TransparentBlt(
HDC hDestDC,
int xDest,
int yDest,
int nDestWidth,
int nDestHeight,
int xSrc,
int ySrc,
int nSrcWidth,
int nSrcHeight,
UINT crTransparent = CLR_INVALID) const throw();
BOOL TransparentBlt(
HDC hDestDC,
const RECT& rectDest,
const RECT& rectSrc,
UINT crTransparent = CLR_INVALID) const throw();
Parámetros
hDestDC
Controlar el contexto del dispositivo de destino.
xDest
Coordenada x, en unidades lógicas, de la esquina superior izquierda del rectángulo de destino.
yDest
Coordenada x, en unidades lógicas, de la esquina superior izquierda del rectángulo de destino.
nDestWidth
Ancho, en unidades lógicas, del rectángulo de destino.
nDestHeight
Alto, en unidades lógicas, del rectángulo de destino.
crTransparent
Color del mapa de bits de origen que se va a tratar como transparente. De forma predeterminada, CLR_INVALID
, que indica que el color establecido actualmente como color transparente de la imagen se debe usar.
rectDest
Referencia a una RECT
estructura, que identifica el destino.
xSrc
Coordenada x, en unidades lógicas, de la esquina superior izquierda del rectángulo de origen.
ySrc
Coordenada y, en unidades lógicas, de la esquina superior izquierda del rectángulo de origen.
nSrcWidth
Ancho, en unidades lógicas, del rectángulo de origen.
nSrcHeight
Alto, en unidades lógicas, del rectángulo de origen.
rectSrc
Referencia a una estructura RECT
, que identifica el origen.
Valor devuelto
TRUE
es si se ejecuta correctamente; de lo contrario FALSE
, es .
Comentarios
TransparentBlt
se admite para mapas de bits de origen de 4 bits por píxel y 8 bits por píxel. Use CImage::AlphaBlend
para especificar mapas de bits por píxel de 32 bits con transparencia.
Ejemplo
// Performs a transparent blit from the source image to the destination
// image using the images' current transparency settings
BOOL TransparentBlt(CImage* pSrcImage, CImage* pDstImage,
int xDest, int yDest, int nDestWidth, int nDestHeight)
{
HDC hDstDC = NULL;
BOOL bResult;
if(pSrcImage == NULL || pDstImage == NULL)
{
// Invalid parameter
return FALSE;
}
// Obtain a DC to the destination image
hDstDC = pDstImage->GetDC();
// Perform the blit
bResult = pSrcImage->TransparentBlt(hDstDC, xDest, yDest, nDestWidth, nDestHeight);
// Release the destination DC
pDstImage->ReleaseDC();
return bResult;
}
Vea también
MMXSwarm
Muestra
SimpleImage
Muestra
Device-Independent Bitmaps
CreateDIBSection
Componentes de escritorio COM de ATL
Device-Independent Bitmaps