Classe CImage
CImage
Fornece suporte a bitmap aprimorado, incluindo a capacidade de carregar e salvar imagens em formatos JPEG, GIF, BMP e PNG.
Importante
Essa classe e os respectivos membros não podem ser usados em aplicativos executados no Windows Runtime.
Sintaxe
class CImage
Membros
Construtores públicos
Nome | Descrição |
---|---|
CImage::CImage |
O construtor . |
Métodos públicos
Nome | Descrição |
---|---|
CImage::AlphaBlend |
Exibe bitmaps que têm pixels transparentes ou semitransparentes. |
CImage::Attach |
Anexa um objeto HBITMAP a um objeto CImage . Pode ser usado com bitmaps de seção não DIB ou bitmaps de seção DIB. |
CImage::BitBlt |
Copia um bitmap do contexto do dispositivo de origem para este contexto de dispositivo atual. |
CImage::Create |
Cria um bitmap de seção DIB e o anexa ao objeto CImage construído anteriormente. |
CImage::CreateEx |
Cria um bitmap de seção DIB (com parâmetros adicionais) e o anexa ao objeto CImage construído anteriormente. |
CImage::Destroy |
Desanexa o bitmap do objeto CImage e destrói o bitmap. |
CImage::Detach |
Desanexa o bitmap de um objeto CImage . |
CImage::Draw |
Copia um bitmap de um retângulo de origem para um retângulo de destino. Draw alonga ou compacta o bitmap para se ajustar às dimensões do retângulo de destino, se necessário, e manipula a combinação alfa e as cores transparentes. |
CImage::GetBits |
Recupera um ponteiro para os valores reais de pixel do bitmap. |
CImage::GetBPP |
Recupera os bits por pixel. |
CImage::GetColorTable |
Recupera valores de cor vermelho, verde, azul (RGB) de um intervalo de entradas na tabela de cores. |
CImage::GetDC |
Recupera o contexto do dispositivo no qual o bitmap atual está selecionado. |
CImage::GetExporterFilterString |
Localiza os formatos de imagem disponíveis e suas descrições. |
CImage::GetHeight |
Recupera a altura da imagem atual em pixels. |
CImage::GetImporterFilterString |
Localiza os formatos de imagem disponíveis e suas descrições. |
CImage::GetMaxColorTableEntries |
Recupera o número máximo de entradas na tabela de cores. |
CImage::GetPitch |
Recupera a densidade da imagem atual, em bytes. |
CImage::GetPixel |
Recupera a cor do pixel especificada por x e y . |
CImage::GetPixelAddress |
Recupera o endereço de determinado pixel. |
CImage::GetTransparentColor |
Recupera a posição da cor transparente na tabela de cores. |
CImage::GetWidth |
Recupera a largura da imagem atual em pixels. |
CImage::IsDIBSection |
Determina se o bitmap anexado é uma seção DIB. |
CImage::IsIndexed |
Indica que as cores de um bitmap são mapeadas para uma paleta indexada. |
CImage::IsNull |
Indica se um bitmap de origem está carregado no momento. |
CImage::IsTransparencySupported |
Indica se o aplicativo dá suporte a bitmaps transparentes. |
CImage::Load |
Carrega uma imagem do arquivo especificado. |
CImage::LoadFromResource |
Carrega uma imagem do recurso especificado. |
CImage::MaskBlt |
Combina os dados de cor para os bitmaps de origem e destino usando a operação de máscara e varredura especificada. |
CImage::PlgBlt |
Executa uma transferência de bloco de bits de um retângulo em um contexto de dispositivo de origem para um paralelogramo em um contexto de dispositivo de destino. |
CImage::ReleaseDC |
Libera o contexto do dispositivo que foi recuperado com CImage::GetDC . |
CImage::ReleaseGDIPlus |
Libera recursos usados pelo GDI+. Precisa ser chamado para liberar recursos criados por um objeto CImage global. |
CImage::Save |
Salva uma imagem como o tipo especificado. Save não pode especificar opções de imagem. |
CImage::SetColorTable |
Define valores de cor RGB vermelho, verde e azul em um intervalo de entradas na tabela de cores da seção DIB. |
CImage::SetPixel |
Define o pixel nas coordenadas especificadas com a cor especificada. |
CImage::SetPixelIndexed |
Define o pixel nas coordenadas especificadas com a cor no índice especificado da paleta. |
CImage::SetPixelRGB |
Define o pixel nas coordenadas especificadas com o valor RGB (vermelho, verde e azul) especificado. |
CImage::SetTransparentColor |
Define o índice da cor a ser tratada como transparente. Somente uma cor em uma paleta pode ser transparente. |
CImage::StretchBlt |
Copia um bitmap de um retângulo de origem em um retângulo de destino, alongando-o ou compactando-o para ajustá-lo às dimensões do retângulo de destino, se necessário. |
CImage::TransparentBlt |
Copia um bitmap com cor transparente do contexto do dispositivo de origem para este contexto atual do dispositivo. |
Operadores públicos
Nome | Descrição |
---|---|
CImage::operator HBITMAP |
Retorna o identificador do Windows anexado ao objeto CImage . |
Comentários
CImage
usa bitmaps que são seções de DIB (bitmap independente do dispositivo) ou não; no entanto, você pode usar Create
ou CImage::Load
apenas com seções de DIB. Você pode anexar um bitmap de seção não DIB a um objeto CImage
usando Attach
, mas não pode usar os seguintes métodos CImage
, que dão suporte apenas a bitmaps de seção DIB:
Para determinar se um bitmap anexado é uma seção DIB, chame IsDibSection
.
Observação
No Visual Studio .NET 2003, essa classe mantém uma contagem do número de objetos CImage
criados. Sempre que a contagem chegar a 0, a função GdiplusShutdown
será chamada automaticamente para liberar recursos usados pelo GDI+. Isso garante que todos os objetos CImage
criados direta ou indiretamente por DLLs sejam sempre destruídos corretamente e que GdiplusShutdown
não seja chamado de DllMain
.
Observação
Não é recomendável usar objetos globais CImage
em uma DLL. Se você precisar usar um objeto global CImage
em uma DLL, chame CImage::ReleaseGDIPlus
para liberar explicitamente os recursos usados pelo GDI+.
CImage
não pode ser selecionado em um novo CDC
. CImage
cria seu próprio HDC
para a imagem. Como um HBITMAP
só pode ser selecionado em um HDC
de cada vez, o HBITMAP
associado à CImage
ao não pode ser selecionado em outro HDC
. Se você precisar de um CDC
, recupere o HDC
do CImage
e repasse-o a CDC::FromHandle
.
Exemplos
// 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();
Quando você usa CImage
em um projeto MFC, observe quais funções de membro em seu projeto esperam um ponteiro para um objeto CBitmap
. Se você quiser usar CImage
com essa função, como CMenu::AppendMenu
, use CBitmap::FromHandle
, passe seu CImage
HBITMAP
, e use o .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);
}
Por meio de CImage
, você tem acesso aos bits reais de uma seção DIB. Você pode usar um objeto CImage
em qualquer lugar que tenha usado anteriormente um HBITMAP
Win32 ou seção DIB.
Você pode usar CImage
de MFC ou ATL.
Observação
Ao criar um projeto usando CImage
, você precisará definir CString
antes de incluir atlimage.h
. Se o projeto usar ATL sem MFC, inclua atlstr.h
antes de incluir atlimage.h
. Se o projeto usar MFC (ou se for um projeto ATL com suporte a MFC), inclua afxstr.h
antes de incluir atlimage.h
.
Da mesma forma, você precisa incluir atlimage.h
antes de incluir atlimpl.cpp
. Para fazer isso facilmente, inclua atlimage.h
no seu pch.h
(stdafx.h
no Visual Studio 2017 e anterior).
Requisitos
Cabeçalho: atlimage.h
CImage::AlphaBlend
Exibe bitmaps que têm pixels transparentes ou 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
Identificador para o contexto do dispositivo de destino.
xDest
A coordenada x, em unidades lógicas, do canto esquerdo superior do retângulo de destino.
yDest
A coordenada y, em unidades lógicas, do canto esquerdo superior do retângulo de destino.
bSrcAlpha
Um valor de transparência alfa a ser usado em todo o bitmap de origem. O 0xff padrão (255) pressupõe que sua imagem seja opaca e que você queira usar apenas valores alfa por pixel.
bBlendOp
A função de combinação alfa para bitmaps de origem e destino, um valor alfa global a ser aplicado a todo o bitmap de origem e as informações de formato para o bitmap de origem. No momento, as funções de combinação de origem e destino estão limitadas a AC_SRC_OVER
.
pointDest
Uma referência a uma estrutura POINT
que identifica o canto superior esquerdo do retângulo de destino, em unidades lógicas.
nDestWidth
A largura, em unidades lógicas, do retângulo de destino.
nDestHeight
A altura, em unidades lógicas, do retângulo de destino.
xSrc
A coordenada X lógica do canto superior esquerdo do retângulo de origem.
ySrc
A coordenada Y lógica do canto superior esquerdo do retângulo de origem.
nSrcWidth
A largura, em unidades lógicas, do retângulo de origem.
nSrcHeight
A altura, em unidades lógicas, do retângulo de origem.
rectDest
Uma referência a uma estrutura RECT
que identifica o destino.
rectSrc
Uma referência a uma estrutura RECT
que identifica a origem.
Valor de retorno
Diferente de zero se tiver êxito; caso contrário, 0.
Comentários
Os bitmaps de combinação alfa dão suporte à combinação de cores por pixel.
Quando bBlendOp
é definido como o padrão de AC_SRC_OVER
, o bitmap de origem é colocado sobre o bitmap de destino com base nos valores alfa dos pixels de origem.
CImage::Attach
Anexa hBitmap
a um objeto CImage
.
void Attach(HBITMAP hBitmap, DIBOrientation eOrientation = DIBOR_DEFAULT) throw();
Parâmetros
hBitmap
Um identificador para um HBITMAP
.
eOrientation
Especifica a orientação do bitmap. Um dos seguintes pode ser feito:
DIBOR_DEFAULT
A orientação do bitmap é determinada pelo sistema operacional.DIBOR_BOTTOMUP
As linhas do bitmap estão em ordem inversa. Isso faz com queCImage::GetBits
retorne um ponteiro perto do final do buffer de bitmap eCImage::GetPitch
retorne um número negativo.DIBOR_TOPDOWN
As linhas do bitmap estão na ordem de cima para baixo. Isso faz com queCImage::GetBits
retorne um ponteiro para o primeiro byte do buffer de bitmap eCImage::GetPitch
retorne um número positivo.
Comentários
O bitmap pode ser um bitmap de seção não DIB ou um bitmap de seção DIB. Confira IsDIBSection
para obter uma lista de métodos que você pode usar apenas com bitmaps de seção DIB.
CImage::BitBlt
Copia um bitmap do contexto do dispositivo de origem para este contexto de dispositivo atual.
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
O HDC
de destino.
xDest
A coordenada X lógica do canto superior esquerdo do retângulo de destino.
yDest
A coordenada Y lógica do canto superior esquerdo do retângulo de destino.
dwROP
A operação de varredura a ser executada. Os códigos de operação de varredura definem exatamente como combinar os bits da origem, do destino e do padrão (conforme definido pelo pincel selecionado no momento) para formar o destino. Confira BitBlt
no SDK do Windows para obter uma lista de outros códigos de operação de varredura e suas descrições.
pointDest
Uma estrutura POINT
que indica o canto superior esquerdo do retângulo de destino.
nDestWidth
A largura, em unidades lógicas, do retângulo de destino.
nDestHeight
A altura, em unidades lógicas, do retângulo de destino.
xSrc
A coordenada X lógica do canto superior esquerdo do retângulo de origem.
ySrc
A coordenada Y lógica do canto superior esquerdo do retângulo de origem.
rectDest
Uma estrutura RECT
que indica o retângulo de destino.
pointSrc
Uma estrutura POINT
que indica o canto superior esquerdo do retângulo de origem.
Valor de retorno
Diferente de zero se bem-sucedido; caso contrário, zero.
Comentários
Para obter mais informações, consulte BitBlt
no SDK do Windows.
CImage::CImage
Constrói um objeto CImage
.
CImage() throw();
Comentários
Depois de construir o objeto, chame Create
, Load
, LoadFromResource
ou Attach
para anexar um bitmap ao objeto.
Observação No Visual Studio, essa classe mantém uma contagem do número de objetos CImage
criados. Sempre que a contagem chegar a 0, a função GdiplusShutdown
será chamada automaticamente para liberar recursos usados pelo GDI+. Isso faz com que todos os objetos CImage
criados direta ou indiretamente por DLLs sejam sempre destruídos corretamente e que GdiplusShutdown
não seja chamado de DllMain.
Não é recomendável usar objetos globais CImage
em uma DLL. Se você precisar usar um objeto global CImage
em uma DLL, chame CImage::ReleaseGDIPlus
para liberar explicitamente os recursos usados pelo GDI+.
CImage::Create
Cria um bitmap CImage
e o anexa ao objeto CImage
construído anteriormente.
BOOL Create(
int nWidth,
int nHeight,
int nBPP,
DWORD dwFlags = 0) throw();
Parâmetros
nWidth
A largura do bitmapCImage
, em pixels.
nHeight
A altura do bitmap CImage
, em pixels. Se nHeight
for positivo, o bitmap será um DIB de baixo para cima e sua origem será o canto inferior esquerdo. Se nHeight
for negativo, o bitmap será um DIB de cima para baixo e sua origem será o canto superior esquerdo.
nBPP
O número de bits por pixel no bitmap. Geralmente 4, 8, 16, 24 ou 32. Pode ser 1 para bitmaps ou máscaras monocromáticos.
dwFlags
Especifica se o objeto bitmap tem um canal alfa. Pode ser uma combinação de zero ou mais dos seguintes valores:
createAlphaChannel
Só pode ser usado senBPP
for 32 e seeCompression
forBI_RGB
. Se especificado, a imagem criada tem um valor alfa (transparência) para cada pixel, armazenado no 4º byte de cada pixel (não utilizado em uma imagem não alfa de 32 bits). Esse canal alfa é usado automaticamente ao chamarCImage::AlphaBlend
.
Observação
Em chamadas para CImage::Draw
, as imagens com um canal alfa são automaticamente combinadas com alfa ao destino.
Valor de retorno
Diferente de zero se tiver êxito; caso contrário, 0.
CImage::CreateEx
Cria um bitmap CImage
e o anexa ao objeto CImage
construído anteriormente.
BOOL CreateEx(
int nWidth,
int nHeight,
int nBPP,
DWORD eCompression,
const DWORD* pdwBitmasks = NULL,
DWORD dwFlags = 0) throw();
Parâmetros
nWidth
A largura do bitmapCImage
, em pixels.
nHeight
A altura do bitmap CImage
, em pixels. Se nHeight
for positivo, o bitmap será um DIB de baixo para cima e sua origem será o canto inferior esquerdo. Se nHeight
for negativo, o bitmap será um DIB de cima para baixo e sua origem será o canto superior esquerdo.
nBPP
O número de bits por pixel no bitmap. Geralmente 4, 8, 16, 24 ou 32. Pode ser 1 para bitmaps ou máscaras monocromáticos.
eCompression
Especifica o tipo de compactação para um bitmap compactado de baixo para cima (DIBs de cima para baixo não podem ser compactados). Pode ser um dos seguintes valores:
BI_RGB
O formato não é compactado. A especificação desse valor ao chamarCImage::CreateEx
é equivalente a chamarCImage::Create
.BI_BITFIELDS
O formato é descompactado e a tabela de cores consiste em três máscaras de coresDWORD
que especificam os componentes vermelho, verde e azul, respectivamente, de cada pixel. Isso é válido quando usado com bitmaps de 16 e 32 bpp.
pdwBitfields
Usado somente se eCompression
estiver definida como BI_BITFIELDS
; caso contrário, ela precisa ser NULL
. Um ponteiro para uma matriz de três máscaras de bits DWORD
que especifica quais bits de cada pixel são usados nos componentes vermelho, verde e azul da cor, respectivamente. Para saber mais sobre restrições para os campos de bits, confira BITMAPINFOHEADER
no SDK do Windows.
dwFlags
Especifica se o objeto bitmap tem um canal alfa. Pode ser uma combinação de zero ou mais dos seguintes valores:
createAlphaChannel
Só pode ser usado senBPP
for 32 e seeCompression
forBI_RGB
. Se especificado, a imagem criada tem um valor alfa (transparência) para cada pixel, armazenado no 4º byte de cada pixel (não utilizado em uma imagem não alfa de 32 bits). Esse canal alfa é usado automaticamente ao chamarCImage::AlphaBlend
.Observação
Em chamadas para
CImage::Draw
, as imagens com um canal alfa são automaticamente combinadas com alfa ao destino.
Valor de retorno
TRUE
se bem-sucedido. Caso contrário, FALSE
.
Exemplo
O exemplo a seguir cria um bitmap de 100 x 100 pixels, usando 16 bits para codificar cada pixel. Em determinado pixel de 16 bits, os bits 0-3 codificam o componente vermelho, os bits 4-7 codificam verde e os bits 8-11 codificam azul. Os 4 bits restantes não são utilizados.
DWORD adwBitmasks[3] = { 0x0000000f, 0x000000f0, 0x00000f00 };
m_myImage.CreateEx(100, 100, 16, BI_BITFIELDS, adwBitmasks, 0);
CImage::Destroy
Desanexa o bitmap do objeto CImage
e destrói o bitmap.
void Destroy() throw();
CImage::Detach
Desanexa um bitmap de um objeto CImage
.
HBITMAP Detach() throw();
Valor de retorno
Um identificador para o bitmap desanexado ou NULL
se nenhum bitmap estiver anexado.
CImage::Draw
Copia um bitmap do contexto do dispositivo de origem para o contexto de dispositivo atual.
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
Um identificador para o contexto do dispositivo de destino.
xDest
A coordenada x, em unidades lógicas, do canto esquerdo superior do retângulo de destino.
yDest
A coordenada y, em unidades lógicas, do canto esquerdo superior do retângulo de destino.
nDestWidth
A largura, em unidades lógicas, do retângulo de destino.
nDestHeight
A altura, em unidades lógicas, do retângulo de destino.
xSrc
A coordenada x, em unidades lógicas, do canto esquerdo superior do retângulo de origem.
ySrc
A coordenada y, em unidades lógicas, do canto esquerdo superior do retângulo de origem.
nSrcWidth
A largura, em unidades lógicas, do retângulo de origem.
nSrcHeight
A altura, em unidades lógicas, do retângulo de origem.
rectDest
Uma referência a uma estrutura RECT
que identifica o destino.
rectSrc
Uma referência a uma estrutura RECT
que identifica a origem.
pointDest
Uma referência a uma estrutura POINT
que identifica o canto superior esquerdo do retângulo de destino, em unidades lógicas.
Valor de retorno
Diferente de zero se tiver êxito; caso contrário, 0.
Comentários
Draw
executa a mesma operação que StretchBlt
, a menos que a imagem contenha uma cor transparente ou um canal alfa. Nesse caso, Draw
executa a mesma operação que TransparentBlt
ou AlphaBlend
, conforme a necessidade.
Para versões de Draw
que não especificam um retângulo de origem, toda a imagem de origem é o padrão. Para a versão de Draw
que não especifica um tamanho para o retângulo de destino, o tamanho da imagem de origem é o padrão e não ocorre nenhum alongamento ou redução.
CImage::GetBits
Recupera um ponteiro para os valores de bit reais de determinado pixel em um bitmap.
void* GetBits() throw();
Valor de retorno
Um ponteiro para o buffer de bitmap. Se o bitmap for um DIB de baixo para cima, o ponteiro apontará para perto do final do buffer. Se o bitmap for um DIB de cima para baixo, o ponteiro apontará para o primeiro byte do buffer.
Comentários
Usando esse ponteiro, juntamente com o valor retornado por GetPitch
, você pode localizar e alterar pixels individuais em uma imagem.
Observação
Esse método dá suporte apenas a bitmaps de seção DIB; consequentemente, você acessa os pixels de um objeto CImage
da mesma maneira que faria com os pixels de uma seção DIB. O ponteiro retornado aponta para o pixel no local (0, 0).
CImage::GetBPP
Recupera o valor de bits por pixel.
int GetBPP() const throw();
Valor de retorno
O número de bits por pixel.
Comentários
Esse valor determina o número de bits que define cada pixel e o número máximo de cores no bitmap.
Os bits por pixel geralmente são 1, 4, 8, 16, 24 ou 32. Confira o membro biBitCount
de BITMAPINFOHEADER
no SDK do Windows para saber mais sobre esse valor.
CImage::GetColorTable
Recupera valores de cor vermelho, verde, azul (RGB) de um intervalo de entradas na paleta da seção DIB.
void GetColorTable(
UINT iFirstColor,
UINT nColors,
RGBQUAD* prgbColors) const throw();
Parâmetros
iFirstColor
O índice da tabela de cores da primeira entrada a ser recuperada.
nColors
O número de entradas da tabela de cores a serem recuperadas.
prgbColors
Um ponteiro para a matriz de estruturas RGBQUAD
a fim de recuperar as entradas da tabela de cores.
CImage::GetDC
Recupera o contexto do dispositivo que atualmente tem a imagem selecionada nele.
HDC GetDC() const throw();
Valor de retorno
Um identificador para um contexto de dispositivo.
Comentários
Em cada chamada para GetDC
, você precisa ter uma chamada subsequente para ReleaseDC
.
CImage::GetExporterFilterString
Localiza formatos de imagem disponíveis para salvar imagens.
static HRESULT GetExporterFilterString(
CSimpleString& strExporters,
CSimpleArray<GUID>& aguidFileTypes,
LPCTSTR pszAllFilesDescription = NULL,
DWORD dwExclude = excludeDefaultSave,
TCHAR chSeparator = _T('|'));
Parâmetros
strExporters
Uma referência a um objeto CSimpleString
. Confira Comentários para obter mais informações.
aguidFileTypes
Uma matriz de GUIDs, com cada elemento correspondendo a um dos tipos de arquivo na cadeia de caracteres. No exemplo em pszAllFilesDescription
abaixo, aguidFileTypes[0]
é GUID_NULL
e os valores restantes da matriz são os formatos de arquivo de imagem compatíveis com o sistema operacional atual.
Observação
Para obter uma lista completa de constantes, confira Constantes de formato de arquivo de imagem no SDK do Windows.
pszAllFilesDescription
Se esse parâmetro não for NULL
, a cadeia de caracteres de filtro terá um filtro adicional no início da lista. Esse filtro terá o valor atual de pszAllFilesDescription
como descrição e aceitará arquivos de qualquer extensão com suporte de qualquer outro exportador na lista.
Por exemplo:
//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 sinalizadores de bits especificando quais tipos de arquivo devem ser excluídos da lista. Os sinalizadores permitidos são:
excludeGIF
= 0x01 Exclui arquivos GIF.excludeBMP
= 0x02 Exclui arquivos BMP (Windows Bitmap).excludeEMF
= 0x04 Exclui arquivos EMF (Metafile Aprimorado).excludeWMF
= 0x08 Exclui arquivos WMF (Windows Metafile).excludeJPEG
= 0x10 Exclui arquivos JPEG.excludePNG
= 0x20 Exclui arquivos PNG.excludeTIFF
= 0x40 Exclui arquivos TIFF.excludeIcon
= 0x80 Exclui arquivos ICO (Ícone do Windows).excludeOther
= 0x80000000 Exclui qualquer outro tipo de arquivo não listado acima.excludeDefaultLoad
= 0 Para carga, todos os tipos de arquivo são incluídos por padrãoexcludeDefaultSave
=excludeIcon | excludeEMF | excludeWMF
Para salvar, esses arquivos são excluídos por padrão porque geralmente têm requisitos especiais.
chSeparator
O separador usado entre os formatos de imagem. Confira Comentários para obter mais informações.
Valor de retorno
Um HRESULT
padrão.
Comentários
Você pode transmitir a cadeia de caracteres de formato resultante para o objeto MFC CFileDialog
a fim de expor as extensões de arquivo dos formatos de imagem disponíveis na caixa de diálogo Salvar como do arquivo.
O parâmetro strExporter
tem o formato:
file description 0|*.ext0|file description 1|*.ext1|...file description N|*.extN||
em que |
é o caractere separador especificado por chSeparator
. Por exemplo:
"Bitmap format|*.bmp|JPEG format|*.jpg|GIF format|*.gif|PNG format|*.png||"
Use o separador |
padrão se você transmite essa cadeia de caracteres para um objeto MFC CFileDialog
. Use o separador '\0'
nulo se você transmite essa cadeia de caracteres para uma caixa de diálogo Salvar arquivo comum.
CImage::GetHeight
Recupera a altura de uma imagem, em pixels.
int GetHeight() const throw();
Valor de retorno
A altura, em pixels, de uma imagem.
CImage::GetImporterFilterString
Localiza formatos de imagem disponíveis para carregar imagens.
static HRESULT GetImporterFilterString(
CSimpleString& strImporters,
CSimpleArray<GUID>& aguidFileTypes,
LPCTSTR pszAllFilesDescription = NULL,
DWORD dwExclude = excludeDefaultLoad,
TCHAR chSeparator = _T('|'));
Parâmetros
strImporters
Uma referência a um objeto CSimpleString
. Confira Comentários para obter mais informações.
aguidFileTypes
Uma matriz de GUIDs, com cada elemento correspondendo a um dos tipos de arquivo na cadeia de caracteres. No exemplo em pszAllFilesDescription
abaixo, *aguidFileTypes[0]*
é GUID_NULL
e os valores restantes da matriz são os formatos de arquivo de imagem compatíveis com o sistema operacional atual.
Observação
Para obter uma lista completa de constantes, confira Constantes de formato de arquivo de imagem no SDK do Windows.
pszAllFilesDescription
Se esse parâmetro não for NULL
, a cadeia de caracteres de filtro terá um filtro adicional no início da lista. Esse filtro terá o valor atual de pszAllFilesDescription
como descrição e aceitará arquivos de qualquer extensão com suporte de qualquer outro exportador na lista.
Por exemplo:
//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 sinalizadores de bits especificando quais tipos de arquivo devem ser excluídos da lista. Os sinalizadores permitidos são:
excludeGIF
= 0x01 Exclui arquivos GIF.excludeBMP
= 0x02 Exclui arquivos BMP (Windows Bitmap).excludeEMF
= 0x04 Exclui arquivos EMF (Metafile Aprimorado).excludeWMF
= 0x08 Exclui arquivos WMF (Windows Metafile).excludeJPEG
= 0x10 Exclui arquivos JPEG.excludePNG
= 0x20 Exclui arquivos PNG.excludeTIFF
= 0x40 Exclui arquivos TIFF.excludeIcon
= 0x80 Exclui arquivos ICO (Ícone do Windows).excludeOther
= 0x80000000 Exclui qualquer outro tipo de arquivo não listado acima.excludeDefaultLoad
= 0 Para carga, todos os tipos de arquivo são incluídos por padrãoexcludeDefaultSave
=excludeIcon | excludeEMF | excludeWMF
Para salvar, esses arquivos são excluídos por padrão porque geralmente têm requisitos especiais.
chSeparator
O separador usado entre os formatos de imagem. Confira Comentários para obter mais informações.
Comentários
Você pode transmitir a cadeia de caracteres de formato resultante para o objeto MFC CFileDialog
a fim de expor as extensões de arquivo dos formatos de imagem disponíveis na caixa de diálogo Abriro do arquivo.
O parâmetro strImporter
tem o formato:
`file description 0|.ext0|file description 1|.ext1|...file description N|*.extN||
em que |
é o caractere separador especificado por chSeparator
. Por exemplo:
"Bitmap format|*.bmp|JPEG format|*.jpg|GIF format|*.gif|PNG format|*.png||"
Use o separador |
padrão se você transmite essa cadeia de caracteres para um objeto MFC CFileDialog
. Use o separador '\0'
nulo se você transmite essa cadeia de caracteres para uma caixa de diálogo Abrir arquivo comum.
CImage::GetMaxColorTableEntries
Recupera o número máximo de entradas na tabela de cores.
int GetMaxColorTableEntries() const throw();
Valor de retorno
O número de entradas na tabela de cores.
Comentários
Esse método dá suporte apenas a bitmaps de seção DIB.
CImage::GetPitch
Recupera a densidade de uma imagem.
int GetPitch() const throw();
Valor de retorno
A densidade da imagem. Se o valor retornado for negativo, o bitmap será um DIB de baixo para cima e sua origem será o canto inferior esquerdo. Se o valor retornado for positivo, o bitmap será um DIB de cima para baixo e sua origem será o canto superior esquerdo.
Comentários
A densidade é a distância, em bytes, entre dois endereços de memória que representam o início de uma linha de bitmap e o início da próxima linha de bitmap. Como a densidade é medida em bytes, a densidade de uma imagem ajuda você a determinar o formato de pixel. O pitch também pode incluir memória adicional, reservada para o bitmap.
Use GetPitch
com GetBits
para localizar pixels individuais de uma imagem.
Observação
Esse método dá suporte apenas a bitmaps de seção DIB.
CImage::GetPixel
Recupera a cor do pixel no local especificado por x e y.
COLORREF GetPixel(int x, int y) const throw();
Parâmetros
x
A coordenada X do pixel.
y
A coordenada Y do pixel.
Valor de retorno
O valor vermelho, verde, azul (RGB) do pixel. Se o pixel estiver fora da região de recorte atual, o valor retornado será CLR_INVALID
.
CImage::GetPixelAddress
Recupera o endereço exato de um pixel.
void* GetPixelAddress(int x, int y) throw();
Parâmetros
x
A coordenada X do pixel.
y
A coordenada Y do pixel.
Comentários
O endereço é determinado de acordo com as coordenadas de um pixel, a densidade do bitmap e os bits por pixel.
Para formatos com menos de 8 bits por pixel, esse método retorna o endereço do byte que contém o pixel. Por exemplo, se o formato de imagem tiver 4 bits por pixel, GetPixelAddress
retornará o endereço do primeiro pixel no byte e você precisará calcular 2 pixels por byte.
Observação
Esse método dá suporte apenas a bitmaps de seção DIB.
CImage::GetTransparentColor
Recupera o local indexado da cor transparente na paleta de cores.
LONG GetTransparentColor() const throw();
Valor de retorno
O índice da cor transparente.
CImage::GetWidth
Recupera a largura, em pixels, de uma imagem.
int GetWidth() const throw();
Valor de retorno
A largura do bitmap em pixels.
CImage::IsDIBSection
Determina se o bitmap anexado é uma seção DIB.
bool IsDIBSection() const throw();
Valor de retorno
TRUE
se o bitmap anexado é uma seção DIB. Caso contrário, FALSE
.
Comentários
Se o bitmap não for uma seção DIB, você não poderá usar os seguintes métodos CImage
, que dão suporte apenas a bitmaps de seção DIB:
CImage::IsIndexed
Determina se os pixels de um bitmap são mapeados para uma paleta de cores.
bool IsIndexed() const throw();
Valor de retorno
TRUE
se indexado; caso contrário, FALSE
.
Comentários
Esse método retornará TRUE
somente se o bitmap for de 8 bits (256 cores) ou menos.
Observação
Esse método dá suporte apenas a bitmaps de seção DIB.
CImage::IsNull
Determina se um bitmap está carregado no momento.
bool IsNull() const throw();
Comentários
Esse método retornará TRUE
se um bitmap não estiver carregado no momento; caso contrário, FALSE
.
CImage::IsTransparencySupported
Indica se o aplicativo dá suporte a bitmaps transparentes.
static BOOL IsTransparencySupported() throw();
Valor de retorno
Não zero se a plataforma atual der suporte à transparência. Caso contrário, 0.
Comentários
Se o valor retornado não for zero e houver suporte à transparência, uma chamada para AlphaBlend
, TransparentBlt
ou Draw
tratará de cores transparentes.
CImage::Load
Carrega uma imagem.
HRESULT Load(LPCTSTR pszFileName) throw();
HRESULT Load(IStream* pStream) throw();
Parâmetros
pszFileName
Um ponteiro para uma cadeia de caracteres contendo o nome do arquivo de imagem a ser carregado.
pStream
Um ponteiro para um fluxo contendo o nome do arquivo de imagem a ser carregado.
Valor de retorno
Um HRESULT
padrão.
Comentários
Carrega a imagem especificada por pszFileName
ou pStream
.
Os tipos de imagem válidos são BMP, GIF, JPEG, PNG e TIFF.
CImage::LoadFromResource
Carrega uma imagem de um recurso BITMAP
.
void LoadFromResource(
HINSTANCE hInstance,
LPCTSTR pszResourceName) throw();
void LoadFromResource(
HINSTANCE hInstance,
UINT nIDResource) throw();
Parâmetros
hInstance
Identificador para uma instância do módulo que contém a imagem a ser carregada.
pszResourceName
Um ponteiro para a cadeia de caracteres que contém o nome do recurso com a imagem a ser carregada.
nIDResource
ID do pool de recursos a carregar.
Comentários
O recurso precisa ser do tipo BITMAP
.
CImage::MaskBlt
Combina os dados de cor para os bitmaps de origem e destino usando a operação de máscara e varredura especificada.
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
O identificador para o módulo cujo executável contém o recurso.
xDest
A coordenada x, em unidades lógicas, do canto esquerdo superior do retângulo de destino.
yDest
A coordenada y, em unidades lógicas, do canto esquerdo superior do retângulo de destino.
nDestWidth
A largura, em unidades lógicas, do retângulo de destino e do bitmap de origem.
nDestHeight
A altura, em unidades lógicas, do retângulo de destino e do bitmap de origem.
xSrc
A coordenada X lógica do canto superior esquerdo do bitmap de origem.
ySrc
A coordenada Y lógica do canto superior esquerdo do bitmap de origem.
hbmMask
Identificador para o bitmap de máscara monocromático combinado com o bitmap de cor no contexto do dispositivo de origem.
xMask
O deslocamento horizontal de pixel para o bitmap de máscara especificado pelo parâmetro hbmMask
.
yMask
O deslocamento vertical de pixel para o bitmap de máscara especificado pelo parâmetro hbmMask
.
dwROP
Especifica os códigos de operação de varredura ternário em primeiro plano e em segundo plano que o método usa para controlar a combinação de dados de origem e de destino. O código de operação de varredura em segundo plano é armazenado no byte de alta ordem da palavra de alta ordem desse valor; o código de operação de varredura em primeiro plano é armazenado no byte de baixa ordem da palavra de alta ordem desse valor; a palavra de baixa ordem desse valor é ignorada e deve ser zero. Para obter uma discussão sobre o primeiro plano e a tela de fundo no contexto desse método, confira MaskBlt
no SDK do Windows. Para obter uma lista de códigos de operação de varredura comuns, confira BitBlt
no SDK do Windows.
rectDest
Uma referência a uma estrutura RECT
que identifica o destino.
pointSrc
Uma estrutura POINT
que indica o canto superior esquerdo do retângulo de origem.
pointMask
Uma estrutura POINT
que indica o canto superior esquerdo do bitmap de máscara.
pointDest
Uma referência a uma estrutura POINT
que identifica o canto superior esquerdo do retângulo de destino, em unidades lógicas.
Valor de retorno
Diferente de zero em caso de êxito; caso contrário, 0.
Comentários
Esse método se aplica somente a Windows NT versões 4.0 e posteriores.
CImage::operator HBITMAP
Use esse operador para obter o identificador GDI do Windows anexado do objeto CImage
. Esse operador é um operador de conversão, que dá suporte ao uso direto de um objeto HBITMAP
.
CImage::PlgBlt
Executa uma transferência de bloco de bits de um retângulo em um contexto de dispositivo de origem para um paralelogramo em um 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
Um identificador para o contexto do dispositivo de destino.
pPoints
Um ponteiro para uma matriz de três pontos no espaço lógico que identifica três cantos do paralelogramo de destino. O canto superior esquerdo do retângulo de origem é mapeado para o primeiro ponto nessa matriz, o canto superior direito para o segundo ponto nessa matriz e o canto inferior esquerdo para o terceiro ponto. O canto inferior direito do retângulo de origem é mapeado para o quarto ponto implícito no paralelogramo.
hbmMask
Um identificador para um bitmap monocromático opcional que é usado para mascarar as cores do retângulo de origem.
xSrc
A coordenada x, em unidades lógicas, do canto esquerdo superior do retângulo de origem.
ySrc
A coordenada y, em unidades lógicas, do canto esquerdo superior do retângulo de origem.
nSrcWidth
A largura, em unidades lógicas, do retângulo de origem.
nSrcHeight
A altura, em unidades lógicas, do retângulo de origem.
xMask
A coordenada X do canto superior esquerdo do bitmap monocromático.
yMask
A coordenada Y do canto superior esquerdo do bitmap monocromático.
rectSrc
Uma referência a uma estrutura RECT
que especifica as coordenadas do retângulo de origem.
pointMask
Uma estrutura POINT
que indica o canto superior esquerdo do bitmap de máscara.
Valor de retorno
Diferente de zero em caso de êxito; caso contrário, 0.
Comentários
Se hbmMask
identificar um bitmap monocromático válido, PlgBit
usará esse bitmap para mascarar os bits de dados de cor do retângulo de origem.
Esse método se aplica somente a Windows NT versões 4.0 e posteriores. Confira PlgBlt
no SDK do Windows para informações mais detalhadas.
CImage::ReleaseDC
Libera o contexto do dispositivo.
void ReleaseDC() const throw();
Comentários
Como apenas um bitmap pode ser selecionado em um contexto de dispositivo por vez, você precisa chamar ReleaseDC
para cada chamada a GetDC
.
CImage::ReleaseGDIPlus
Libera recursos usados pelo GDI+.
void ReleaseGDIPlus() throw();
Comentários
Esse método precisa ser chamado para liberar recursos alocados por um objeto global CImage
. Consulte CImage::CImage
.
CImage::Save
Salva uma imagem no fluxo ou arquivo especificado no disco.
HRESULT Save(
IStream* pStream,
REFGUID guidFileType) const throw();
HRESULT Save(
LPCTSTR pszFileName,
REFGUID guidFileType = GUID_NULL) const throw();
Parâmetros
pStream
Um ponteiro para um objeto COM IStream que contém os dados da imagem do arquivo.
pszFileName
Um ponteiro para o nome do arquivo da imagem.
guidFileType
O tipo de arquivo no qual salvar a imagem. Um dos seguintes pode ser feito:
ImageFormatBMP
Uma imagem bitmap não compactada.ImageFormatPNG
Uma imagem compactada em formato PNG.ImageFormatJPEG
Uma imagem compactada JPEG.ImageFormatGIF
Uma imagem compactada GIF.
Observação
Para obter uma lista completa de constantes, confira Constantes de formato de arquivo de imagem no SDK do Windows.
Valor de retorno
Um HRESULT
padrão.
Comentários
Chame essa função para salvar a imagem usando um nome e um tipo especificados. Se o parâmetro guidFileType
não estiver incluído, a extensão de arquivo do nome do arquivo será usada para determinar o formato da imagem. Se nenhuma extensão for fornecida, a imagem será salva no formato BMP.
CImage::SetColorTable
Define os valores de cor vermelho, verde, azul (RGB) de um intervalo de entradas na paleta da seção DIB.
void SetColorTable(
UINT iFirstColor,
UINT nColors,
const RGBQUAD* prgbColors) throw();
Parâmetros
iFirstColor
O índice da tabela de cores da primeira entrada a ser definida.
nColors
O número de entradas de tabela de cores a serem definidas.
prgbColors
Um ponteiro para a matriz de estruturas RGBQUAD
a fim de definir as entradas da tabela de cores.
Comentários
Esse método dá suporte apenas a bitmaps de seção DIB.
CImage::SetPixel
Define a cor de um pixel em determinado local no bitmap.
void SetPixel(int x, int y, COLORREF color) throw();
Parâmetros
x
O local horizontal do pixel a ser definido.
y
O local vertical do pixel a ser definido.
color
A cor para a qual você define o pixel.
Comentários
Esse método falhará se as coordenadas de pixel estiverem fora da área de recorte selecionada.
CImage::SetPixelIndexed
Define a cor do pixel para a cor localizada no iIndex
na paleta de cores.
void SetPixelIndexed(int x, int y, int iIndex) throw();
Parâmetros
x
O local horizontal do pixel a ser definido.
y
O local vertical do pixel a ser definido.
iIndex
O índice de uma cor na paleta de cores.
CImage::SetPixelRGB
Define o pixel nos locais especificados por x
e y
para as cores indicadas por r
, g
e b
, em uma imagem vermelha, verde, azul (RGB).
void SetPixelRGB(
int x,
int y,
BYTE r,
BYTE g,
BYTE b) throw();
Parâmetros
x
O local horizontal do pixel a ser definido.
y
O local vertical do pixel a ser definido.
r
A intensidade da cor vermelha.
g
A intensidade da cor verde.
b
A intensidade da cor azul.
Comentários
Cada um dos parâmetros vermelho, verde e azul é representado por um número entre 0 e 255. Se você definir todos os três parâmetros como zero, a cor resultante combinada será preto. Se você definir todos os três parâmetros como 255, a cor resultante combinada será branco.
CImage::SetTransparentColor
Define uma cor em determinado local indexado como transparente.
LONG SetTransparentColor(LONG iTransparentColor) throw();
Parâmetros
iTransparentColor
O índice, em uma paleta de cores, da cor a ser definida como transparente. Se -1, nenhuma cor será definida como transparente.
Valor de retorno
O índice da cor definida anteriormente como transparente.
CImage::StretchBlt
Copia um bitmap do contexto do dispositivo de origem para este contexto de dispositivo atual.
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
Um identificador para o contexto do dispositivo de destino.
xDest
A coordenada x, em unidades lógicas, do canto esquerdo superior do retângulo de destino.
yDest
A coordenada y, em unidades lógicas, do canto esquerdo superior do retângulo de destino.
nDestWidth
A largura, em unidades lógicas, do retângulo de destino.
nDestHeight
A altura, em unidades lógicas, do retângulo de destino.
dwROP
A operação de varredura a ser executada. Os códigos de operação de varredura definem exatamente como combinar os bits da origem, do destino e do padrão (conforme definido pelo pincel selecionado no momento) para formar o destino. Confira BitBlt
no SDK do Windows para obter uma lista de outros códigos de operação de varredura e suas descrições.
rectDest
Uma referência a uma estrutura RECT
que identifica o destino.
xSrc
A coordenada x, em unidades lógicas, do canto esquerdo superior do retângulo de origem.
ySrc
A coordenada y, em unidades lógicas, do canto esquerdo superior do retângulo de origem.
nSrcWidth
A largura, em unidades lógicas, do retângulo de origem.
nSrcHeight
A altura, em unidades lógicas, do retângulo de origem.
rectSrc
Uma referência a uma estrutura RECT
que identifica a origem.
Valor de retorno
Diferente de zero em caso de êxito; caso contrário, 0.
Comentários
Para obter mais informações, consulte StretchBlt
no SDK do Windows.
CImage::TransparentBlt
Copia um bitmap do contexto do dispositivo de origem para este contexto de dispositivo atual.
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
Um identificador para o contexto do dispositivo de destino.
xDest
A coordenada x, em unidades lógicas, do canto esquerdo superior do retângulo de destino.
yDest
A coordenada y, em unidades lógicas, do canto esquerdo superior do retângulo de destino.
nDestWidth
A largura, em unidades lógicas, do retângulo de destino.
nDestHeight
A altura, em unidades lógicas, do retângulo de destino.
crTransparent
A cor no bitmap de origem a ser tratada como transparente. Por padrão, CLR_INVALID
, indicando que a cor atualmente definida como a cor transparente da imagem deve ser usada.
rectDest
Uma referência a uma estrutura RECT
que identifica o destino.
xSrc
A coordenada x, em unidades lógicas, do canto esquerdo superior do retângulo de origem.
ySrc
A coordenada y, em unidades lógicas, do canto esquerdo superior do retângulo de origem.
nSrcWidth
A largura, em unidades lógicas, do retângulo de origem.
nSrcHeight
A altura, em unidades lógicas, do retângulo de origem.
rectSrc
Uma referência a uma estrutura RECT
que identifica a origem.
Valor de retorno
TRUE
se for bem-sucedido, caso contrário, FALSE
.
Comentários
TransparentBlt
tem suporte em bitmaps de origem de 4 bits por pixel e 8 bits por pixel. Use CImage::AlphaBlend
para especificar bitmaps de 32 bits por pixel com transparência.
Exemplo
// 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;
}
Confira também
MMXSwarm
Exemplo
SimpleImage
Exemplo
Bitmap independente de dispositivo
CreateDIBSection
Componentes de área de trabalho COM da ATL
Bitmap independente de dispositivo