Classe CImage
CImage
offre supporto avanzato per le bitmap, inclusa la possibilità di caricare e salvare immagini in formati JPEG, GIF, BMP e Portable Network Graphics (PNG).
Importante
Questa classe e i relativi membri non possono essere usati nelle applicazioni eseguite in Windows Runtime.
Sintassi
class CImage
Membri
Costruttori pubblici
Nome | Descrizione |
---|---|
CImage::CImage |
Costruttore. |
Metodi pubblici
Nome | Descrizione |
---|---|
CImage::AlphaBlend |
Visualizza bitmap con pixel trasparenti o semitrasparenti. |
CImage::Attach |
Associa un oggetto HBITMAP a un CImage oggetto . Può essere usato con bitmap di sezione non DIB o bitmap di sezione DIB. |
CImage::BitBlt |
Copia una bitmap dal contesto del dispositivo di origine in questo contesto di dispositivo corrente. |
CImage::Create |
Crea una bitmap di sezione DIB e la collega all'oggetto costruito CImage in precedenza. |
CImage::CreateEx |
Crea una bitmap di sezione DIB (con parametri aggiuntivi) e la associa all'oggetto costruito CImage in precedenza. |
CImage::Destroy |
Scollega la bitmap dall'oggetto CImage e distrugge la bitmap. |
CImage::Detach |
Scollega la bitmap da un CImage oggetto . |
CImage::Draw |
Copia una bitmap da un rettangolo di origine in un rettangolo di destinazione. Draw estende o comprime la bitmap per adattarsi alle dimensioni del rettangolo di destinazione, se necessario, e gestisce la fusione alfa e i colori trasparenti. |
CImage::GetBits |
Recupera un puntatore ai valori pixel effettivi della bitmap. |
CImage::GetBPP |
Recupera i bit per pixel. |
CImage::GetColorTable |
Recupera i valori di colore rosso, verde, blu (RGB) da un intervallo di voci nella tabella colori. |
CImage::GetDC |
Recupera il contesto del dispositivo in cui è selezionata la bitmap corrente. |
CImage::GetExporterFilterString |
Trova i formati di immagine disponibili e le relative descrizioni. |
CImage::GetHeight |
Recupera l'altezza dell'immagine corrente in pixel. |
CImage::GetImporterFilterString |
Trova i formati di immagine disponibili e le relative descrizioni. |
CImage::GetMaxColorTableEntries |
Recupera il numero massimo di voci nella tabella colori. |
CImage::GetPitch |
Recupera il passo dell'immagine corrente, in byte. |
CImage::GetPixel |
Recupera il colore del pixel specificato da x e y . |
CImage::GetPixelAddress |
Recupera l'indirizzo di un determinato pixel. |
CImage::GetTransparentColor |
Recupera la posizione del colore trasparente nella tabella colori. |
CImage::GetWidth |
Recupera la larghezza dell'immagine corrente in pixel. |
CImage::IsDIBSection |
Determina se la bitmap associata è una sezione DIB. |
CImage::IsIndexed |
Indica che i colori di una bitmap vengono mappati a una tavolozza indicizzata. |
CImage::IsNull |
Indica se una bitmap di origine è attualmente caricata. |
CImage::IsTransparencySupported |
Indica se l'applicazione supporta bitmap trasparenti. |
CImage::Load |
Carica un'immagine dal file specificato. |
CImage::LoadFromResource |
Carica un'immagine dalla risorsa specificata. |
CImage::MaskBlt |
Combina i dati di colore per le bitmap di origine e di destinazione usando l'operazione di maschera e raster specificata. |
CImage::PlgBlt |
Esegue un trasferimento di blocchi di bit da un rettangolo in un contesto di dispositivo di origine in un parallelogramma in un contesto di dispositivo di destinazione. |
CImage::ReleaseDC |
Rilascia il contesto di dispositivo recuperato con CImage::GetDC . |
CImage::ReleaseGDIPlus |
Rilascia le risorse usate da GDI+. Deve essere chiamato per liberare risorse create da un oggetto globale CImage . |
CImage::Save |
Salva un'immagine come tipo specificato. Save non può specificare le opzioni dell'immagine. |
CImage::SetColorTable |
Imposta i valori di colore rosso, verde, blu RGB) in un intervallo di voci nella tabella colori della sezione DIB. |
CImage::SetPixel |
Imposta il pixel in corrispondenza delle coordinate specificate sul colore specificato. |
CImage::SetPixelIndexed |
Imposta il pixel in corrispondenza delle coordinate specificate sul colore in corrispondenza dell'indice specificato della tavolozza. |
CImage::SetPixelRGB |
Imposta il pixel in corrispondenza delle coordinate specificate sul valore rosso, verde, blu (RGB) specificato. |
CImage::SetTransparentColor |
Imposta l'indice del colore da considerare trasparente. Un solo colore in una tavolozza può essere trasparente. |
CImage::StretchBlt |
Copia una bitmap da un rettangolo di origine in un rettangolo di destinazione, estendendo o comprimendo la bitmap per adattarsi alle dimensioni del rettangolo di destinazione, se necessario. |
CImage::TransparentBlt |
Copia una bitmap con colore trasparente dal contesto del dispositivo di origine in questo contesto di dispositivo corrente. |
Operatori pubblici
Nome | Descrizione |
---|---|
CImage::operator HBITMAP |
Restituisce l'handle di Windows associato all'oggetto CImage . |
Osservazioni:
CImage
accetta bitmap che sono o sezioni bitmap indipendenti dal dispositivo (DIB) o meno; Tuttavia, è possibile usare Create
o CImage::Load
solo con sezioni DIB. È possibile collegare una bitmap di sezione non DIB a un CImage
oggetto usando Attach
, ma non è possibile usare i metodi seguenti CImage
, che supportano solo bitmap di sezione DIB:
Per determinare se una bitmap associata è una sezione DIB, chiamare IsDibSection
.
Nota
In Visual Studio .NET 2003 questa classe mantiene un conteggio del numero di CImage
oggetti creati. Ogni volta che il conteggio passa a 0, la funzione GdiplusShutdown
viene chiamata automaticamente per rilasciare le risorse usate da GDI+. In questo modo, tutti gli CImage
oggetti creati direttamente o indirettamente dalle DLL vengono sempre eliminati correttamente e che GdiplusShutdown
non viene chiamato da DllMain
.
Nota
Non è consigliabile usare oggetti globali CImage
in una DLL. Se è necessario usare un oggetto globale CImage
in una DLL, chiamare CImage::ReleaseGDIPlus
per rilasciare in modo esplicito le risorse usate da GDI+.
CImage
non può essere selezionato in un nuovo CDC
oggetto . CImage
crea il proprio HDC
per l'immagine. Poiché un HBITMAP
oggetto può essere selezionato solo in uno HDC
alla volta, l'oggetto HBITMAP
associato a CImage
non può essere selezionato in un altro HDC
oggetto . Se è necessario , CDC
recuperare l'oggetto HDC
CImage
da e assegnarlo a CDC::FromHandle
.
Esempi
// 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 si usa CImage
in un progetto MFC, tenere presente quali funzioni membro nel progetto prevedono un puntatore a un CBitmap
oggetto . Se si vuole usare CImage
con una funzione di questo tipo, ad esempio CMenu::AppendMenu
, usare CBitmap::FromHandle
, passarlo CImage
HBITMAP
e usare l'oggetto restituito 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);
}
Tramite CImage
è possibile accedere ai bit effettivi di una sezione DIB. Puoi usare un CImage
oggetto in qualsiasi punto in cui hai usato in precedenza una sezione Win32 HBITMAP
o DIB.
È possibile usare CImage
da MFC o ATL.
Nota
Quando si crea un progetto usando CImage
, è necessario definire CString
prima di includere atlimage.h
. Se il progetto usa ATL senza MFC, includere atlstr.h
prima di includere atlimage.h
. Se il progetto usa MFC (o se si tratta di un progetto ATL con supporto MFC), includere afxstr.h
prima di includere atlimage.h
.
Analogamente, è necessario includere atlimage.h
prima di includere atlimpl.cpp
. A tale scopo, includere atlimage.h
in pch.h
(stdafx.h
in Visual Studio 2017 e versioni precedenti).
Requisiti
Intestazione: atlimage.h
CImage::AlphaBlend
Visualizza bitmap con pixel trasparenti o semitrasparenti.
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);
Parametri
hDestDC
Handle nel contesto del dispositivo di destinazione.
xDest
Coordinata x, in unità logiche, dell'angolo superiore sinistro del rettangolo di destinazione.
yDest
Coordinata y, in unità logiche, dell'angolo superiore sinistro del rettangolo di destinazione.
bSrcAlpha
Valore di trasparenza alfa da usare sull'intera bitmap di origine. Il 0xff predefinito (255) presuppone che l'immagine sia opaca e che si vogliano usare solo valori alfa per pixel.
bBlendOp
Funzione di fusione alfa per le bitmap di origine e di destinazione, un valore alfa globale da applicare all'intera bitmap di origine e informazioni sul formato per la bitmap di origine. Le funzioni blend di origine e di destinazione sono attualmente limitate a AC_SRC_OVER
.
pointDest
Riferimento a una POINT
struttura che identifica l'angolo superiore sinistro del rettangolo di destinazione, in unità logiche.
nDestWidth
Larghezza, in unità logiche, del rettangolo di destinazione.
nDestHeight
Altezza, in unità logiche, del rettangolo di destinazione.
xSrc
Coordinata x logica dell'angolo superiore sinistro del rettangolo di origine.
ySrc
Coordinata y logica dell'angolo superiore sinistro del rettangolo di origine.
nSrcWidth
Larghezza, in unità logiche, del rettangolo di origine.
nSrcHeight
Altezza, in unità logiche, del rettangolo di origine.
rectDest
Riferimento a una RECT
struttura che identifica la destinazione.
rectSrc
Riferimento a una RECT
struttura che identifica l'origine.
Valore restituito
Diverso da zero se ha esito positivo; in caso contrario 0.
Osservazioni:
Le bitmap di fusione alfa supportano la fusione dei colori in base al pixel.
Quando bBlendOp
è impostato sul valore predefinito di , la bitmap di AC_SRC_OVER
origine viene posizionata sulla bitmap di destinazione in base ai valori alfa dei pixel di origine.
CImage::Attach
hBitmap
Associa a un CImage
oggetto .
void Attach(HBITMAP hBitmap, DIBOrientation eOrientation = DIBOR_DEFAULT) throw();
Parametri
hBitmap
Handle di un oggetto HBITMAP
.
eOrientation
Specifica l'orientamento della bitmap. Può essere uno dei seguenti:
DIBOR_DEFAULT
L'orientamento della bitmap è determinato dal sistema operativo.DIBOR_BOTTOMUP
Le righe della bitmap sono in ordine inverso. In questo modoCImage::GetBits
viene restituito un puntatore vicino alla fine del buffer bitmap eCImage::GetPitch
viene restituito un numero negativo.DIBOR_TOPDOWN
Le righe della bitmap sono in ordine superiore a inferiore. In questo modoCImage::GetBits
viene restituito un puntatore al primo byte del buffer bitmap eCImage::GetPitch
viene restituito un numero positivo.
Osservazioni:
La bitmap può essere una bitmap di sezione non DIB o una bitmap di sezione DIB. Vedere IsDIBSection
per un elenco di metodi che è possibile usare solo con bitmap di sezione DIB.
CImage::BitBlt
Copia una bitmap dal contesto del dispositivo di origine in questo contesto di dispositivo corrente.
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();
Parametri
hDestDC
Il HDC
di destinazione.
xDest
Coordinata x logica dell'angolo superiore sinistro del rettangolo di destinazione.
yDest
Coordinata y logica dell'angolo superiore sinistro del rettangolo di destinazione.
dwROP
Operazione raster da eseguire. I codici di operazione raster definiscono esattamente come combinare i bit dell'origine, la destinazione e il modello (come definito dal pennello attualmente selezionato) per formare la destinazione. Vedere BitBlt
in Windows SDK per un elenco di altri codici di operazione raster e le relative descrizioni.
pointDest
Struttura POINT
che indica l'angolo superiore sinistro del rettangolo di destinazione.
nDestWidth
Larghezza, in unità logiche, del rettangolo di destinazione.
nDestHeight
Altezza, in unità logiche, del rettangolo di destinazione.
xSrc
Coordinata x logica dell'angolo superiore sinistro del rettangolo di origine.
ySrc
Coordinata y logica dell'angolo superiore sinistro del rettangolo di origine.
rectDest
Struttura RECT
che indica il rettangolo di destinazione.
pointSrc
Struttura POINT
che indica l'angolo superiore sinistro del rettangolo di origine.
Valore restituito
Diverso da zero se ha esito positivo; in caso contrario 0.
Osservazioni:
Per altre informazioni, vedere BitBlt
in Windows SDK.
CImage::CImage
Costruisce un oggetto CImage
.
CImage() throw();
Osservazioni:
Dopo aver costruito l'oggetto, chiamare Create
, LoadFromResource
Load
, o Attach
per collegare una bitmap all'oggetto .
Nota In Visual Studio questa classe mantiene un conteggio del numero di CImage
oggetti creati. Ogni volta che il conteggio passa a 0, la funzione GdiplusShutdown
viene chiamata automaticamente per rilasciare le risorse usate da GDI+. In questo modo, tutti gli CImage
oggetti creati direttamente o indirettamente dalle DLL vengono sempre eliminati correttamente e non GdiplusShutdown
vengono chiamati da DllMain.
Non è consigliabile usare oggetti globali CImage
in una DLL. Se è necessario usare un oggetto globale CImage
in una DLL, chiamare CImage::ReleaseGDIPlus
per rilasciare in modo esplicito le risorse usate da GDI+.
CImage::Create
Crea una CImage
bitmap e la collega all'oggetto costruito CImage
in precedenza.
BOOL Create(
int nWidth,
int nHeight,
int nBPP,
DWORD dwFlags = 0) throw();
Parametri
nWidth
Larghezza della CImage
bitmap, espressa in pixel.
nHeight
Altezza della CImage
bitmap, in pixel. Se nHeight
è positivo, la bitmap è un DIB inferiore e l'origine è l'angolo inferiore sinistro. Se nHeight
è negativo, la bitmap è un DIB dall'alto verso il basso e l'origine è l'angolo superiore sinistro.
nBPP
Numeri di bit per pixel nella bitmap. In genere 4, 8, 16, 24 o 32. Può essere 1 per bitmap monocromatiche o maschere.
dwFlags
Specifica se l'oggetto bitmap ha un canale alfa. Può essere una combinazione di zero o più dei valori seguenti:
createAlphaChannel
Può essere usato solo senBPP
è 32 eeCompression
èBI_RGB
. Se specificato, l'immagine creata ha un valore alfa (trasparenza) per ogni pixel, archiviato nel 4° byte di ogni pixel (inutilizzato in un'immagine non alfa a 32 bit). Questo canale alfa viene usato automaticamente quando si chiamaCImage::AlphaBlend
.
Nota
Nelle chiamate a CImage::Draw
, le immagini con un canale alfa vengono combinate automaticamente alla destinazione.
Valore restituito
Diverso da zero se ha esito positivo; in caso contrario 0.
CImage::CreateEx
Crea una CImage
bitmap e la collega all'oggetto costruito CImage
in precedenza.
BOOL CreateEx(
int nWidth,
int nHeight,
int nBPP,
DWORD eCompression,
const DWORD* pdwBitmasks = NULL,
DWORD dwFlags = 0) throw();
Parametri
nWidth
Larghezza della CImage
bitmap, espressa in pixel.
nHeight
Altezza della CImage
bitmap, in pixel. Se nHeight
è positivo, la bitmap è un DIB inferiore e l'origine è l'angolo inferiore sinistro. Se nHeight
è negativo, la bitmap è un DIB dall'alto verso il basso e l'origine è l'angolo superiore sinistro.
nBPP
Numeri di bit per pixel nella bitmap. In genere 4, 8, 16, 24 o 32. Può essere 1 per bitmap monocromatiche o maschere.
eCompression
Specifica il tipo di compressione per una bitmap compressa dal basso verso l'alto (non è possibile comprimere i DIB dall'alto verso il basso). I possibili valori sono i seguenti:
BI_RGB
Il formato non è compresso. Specificare questo valore quando si chiamaCImage::CreateEx
equivale a chiamareCImage::Create
.BI_BITFIELDS
Il formato non è compresso e la tabella dei colori è costituita da treDWORD
maschere di colore che specificano rispettivamente i componenti rosso, verde e blu di ogni pixel. Questa operazione è valida se usata con bitmap da 16 a 32 bpp.
pdwBitfields
Usato solo se eCompression
è impostato su BI_BITFIELDS
, altrimenti deve essere NULL
. Puntatore a una matrice di tre DWORD
maschera di bit, specificando i bit di ogni pixel usati rispettivamente per i componenti rosso, verde e blu del colore. Per informazioni sulle restrizioni per i campi di bit, vedere BITMAPINFOHEADER
in Windows SDK.
dwFlags
Specifica se l'oggetto bitmap ha un canale alfa. Può essere una combinazione di zero o più dei valori seguenti:
createAlphaChannel
Può essere usato solo senBPP
è 32 eeCompression
èBI_RGB
. Se specificato, l'immagine creata ha un valore alfa (trasparenza) per ogni pixel, archiviato nel 4° byte di ogni pixel (inutilizzato in un'immagine non alfa a 32 bit). Questo canale alfa viene usato automaticamente quando si chiamaCImage::AlphaBlend
.Nota
Nelle chiamate a
CImage::Draw
, le immagini con un canale alfa vengono combinate automaticamente alla destinazione.
Valore restituito
TRUE
se l'operazione riesce. In caso contrario, FALSE
.
Esempio
L'esempio seguente crea una bitmap di 100x100 pixel, usando 16 bit per codificare ogni pixel. In un determinato pixel a 16 bit, i bit 0-3 codificano il componente rosso, i bit a 4-7 codificano il verde e i bit blu da 8 a 11 bit. I restanti 4 bit non vengono usati.
DWORD adwBitmasks[3] = { 0x0000000f, 0x000000f0, 0x00000f00 };
m_myImage.CreateEx(100, 100, 16, BI_BITFIELDS, adwBitmasks, 0);
CImage::Destroy
Scollega la bitmap dall'oggetto CImage
e distrugge la bitmap.
void Destroy() throw();
CImage::Detach
Scollega una bitmap da un CImage
oggetto .
HBITMAP Detach() throw();
Valore restituito
Handle per la bitmap scollegata o NULL
se non è associata alcuna bitmap.
CImage::Draw
Copia una bitmap dal contesto del dispositivo di origine nel contesto di dispositivo corrente.
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();
Parametri
hDestDC
Handle per il contesto del dispositivo di destinazione.
xDest
Coordinata x, in unità logiche, dell'angolo superiore sinistro del rettangolo di destinazione.
yDest
Coordinata y, in unità logiche, dell'angolo superiore sinistro del rettangolo di destinazione.
nDestWidth
Larghezza, in unità logiche, del rettangolo di destinazione.
nDestHeight
Altezza, in unità logiche, del rettangolo di destinazione.
xSrc
Coordinata x, in unità logiche, dell'angolo superiore sinistro del rettangolo di origine.
ySrc
Coordinata y, in unità logiche, dell'angolo superiore sinistro del rettangolo di origine.
nSrcWidth
Larghezza, in unità logiche, del rettangolo di origine.
nSrcHeight
Altezza, in unità logiche, del rettangolo di origine.
rectDest
Riferimento a una RECT
struttura che identifica la destinazione.
rectSrc
Riferimento a una RECT
struttura che identifica l'origine.
pointDest
Riferimento a una POINT
struttura che identifica l'angolo superiore sinistro del rettangolo di destinazione, in unità logiche.
Valore restituito
Diverso da zero se ha esito positivo; in caso contrario 0.
Osservazioni:
Draw
esegue la stessa operazione di StretchBlt
, a meno che l'immagine non contenga un colore trasparente o un canale alfa. In tal caso, Draw
esegue la stessa operazione di TransparentBlt
o AlphaBlend
come richiesto.
Per le versioni di che non specificano un rettangolo di origine, l'intera immagine di Draw
origine è l'impostazione predefinita. Per la versione di che non specifica una dimensione per il rettangolo di Draw
destinazione, la dimensione dell'immagine di origine è l'impostazione predefinita e non si verifica alcuna estensione o compattazione.
CImage::GetBits
Recupera un puntatore ai valori di bit effettivi di un determinato pixel in una bitmap.
void* GetBits() throw();
Valore restituito
Puntatore al buffer bitmap. Se la bitmap è un DIB inferiore, il puntatore punta vicino alla fine del buffer. Se la bitmap è un DIB dall'alto verso il basso, il puntatore punta al primo byte del buffer.
Osservazioni:
Usando questo puntatore, insieme al valore restituito da GetPitch
, è possibile individuare e modificare singoli pixel in un'immagine.
Nota
Questo metodo supporta solo bitmap di sezione DIB; di conseguenza, si accede ai pixel di un CImage
oggetto allo stesso modo in cui si farebbe i pixel di una sezione DIB. Il puntatore restituito punta al pixel nella posizione (0, 0).
CImage::GetBPP
Recupera il valore bit per pixel.
int GetBPP() const throw();
Valore restituito
Numero di bit per pixel.
Osservazioni:
Questo valore determina il numero di bit che definiscono ogni pixel e il numero massimo di colori nella bitmap.
I bit per pixel sono in genere 1, 4, 8, 16, 24 o 32. Per altre informazioni su questo valore, vedere il biBitCount
membro di BITMAPINFOHEADER
in Windows SDK.
CImage::GetColorTable
Recupera i valori di colore rosso, verde, blu (RGB) da un intervallo di voci nella tavolozza della sezione DIB.
void GetColorTable(
UINT iFirstColor,
UINT nColors,
RGBQUAD* prgbColors) const throw();
Parametri
iFirstColor
Indice della tabella dei colori della prima voce da recuperare.
nColors
Numero di voci della tabella colori da recuperare.
prgbColors
Puntatore alla matrice di RGBQUAD
strutture per recuperare le voci della tabella dei colori.
CImage::GetDC
Recupera il contesto del dispositivo in cui è attualmente selezionata l'immagine.
HDC GetDC() const throw();
Valore restituito
Handle per un contesto di dispositivo.
Osservazioni:
Per ogni chiamata a GetDC
, è necessario disporre di una chiamata successiva a ReleaseDC
.
CImage::GetExporterFilterString
Trova i formati di immagine disponibili per il salvataggio delle immagini.
static HRESULT GetExporterFilterString(
CSimpleString& strExporters,
CSimpleArray<GUID>& aguidFileTypes,
LPCTSTR pszAllFilesDescription = NULL,
DWORD dwExclude = excludeDefaultSave,
TCHAR chSeparator = _T('|'));
Parametri
strExporters
Riferimento a un oggetto CSimpleString
. Vedere osservazioni Per ulteriori informazioni.
aguidFileTypes
Matrice di GUID, con ogni elemento corrispondente a uno dei tipi di file nella stringa. Nell'esempio riportato di pszAllFilesDescription
seguito aguidFileTypes[0]
è GUID_NULL
e i valori di matrice rimanenti sono i formati di file di immagine supportati dal sistema operativo corrente.
Nota
Per un elenco completo delle costanti, vedere Costanti del formato di file di immagine in Windows SDK.
pszAllFilesDescription
Se questo parametro non NULL
è , la stringa di filtro avrà un filtro aggiuntivo all'inizio dell'elenco. Questo filtro avrà il valore corrente di pszAllFilesDescription
per la relativa descrizione e accetta i file di qualsiasi estensione supportata da qualsiasi altro esportatore nell'elenco.
Ad esempio:
//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
Set di flag di bit che specificano i tipi di file da escludere dall'elenco. I flag consentiti sono:
excludeGIF
= 0x01 Esclude i file GIF.excludeBMP
= 0x02 Esclude i file BMP (Bitmap di Windows).excludeEMF
= 0x04 esclude i file EMF (Enhanced Metafile).excludeWMF
= 0x08 esclude i file WMF (Windows Metafile).excludeJPEG
= 0x10 Esclude i file JPEG.excludePNG
= 0x20 Esclude i file PNG.excludeTIFF
= 0x40 Esclude i file TIFF.excludeIcon
= 0x80 esclude i file ICO (icona di Windows).excludeOther
= 0x80000000 Esclude qualsiasi altro tipo di file non elencato in precedenza.excludeDefaultLoad
= 0 Per il caricamento, tutti i tipi di file sono inclusi per impostazione predefinitaexcludeDefaultSave
=excludeIcon | excludeEMF | excludeWMF
Per il salvataggio, questi file vengono esclusi per impostazione predefinita perché in genere hanno requisiti speciali.
chSeparator
Separatore utilizzato tra i formati di immagine. Vedere osservazioni Per ulteriori informazioni.
Valore restituito
Oggetto standard HRESULT
.
Osservazioni:
È possibile passare la stringa di formato risultante all'oggetto MFC CFileDialog
per esporre le estensioni di file dei formati di immagine disponibili nella finestra di dialogo File Salva con nome.
Il parametro strExporter
ha il formato:
file description 0|*.ext0|file description 1|*.ext1|...file description N|*.extN||
dove |
è il carattere separatore specificato da chSeparator
. Ad esempio:
"Bitmap format|*.bmp|JPEG format|*.jpg|GIF format|*.gif|PNG format|*.png||"
Usare il separatore |
predefinito se si passa questa stringa a un oggetto MFC CFileDialog
. Usare il separatore '\0'
Null se si passa questa stringa a una finestra di dialogo comune di salvataggio file.
CImage::GetHeight
Recupera l'altezza, in pixel, di un'immagine.
int GetHeight() const throw();
Valore restituito
Altezza, in pixel, di un'immagine.
CImage::GetImporterFilterString
Trova i formati di immagine disponibili per il caricamento delle immagini.
static HRESULT GetImporterFilterString(
CSimpleString& strImporters,
CSimpleArray<GUID>& aguidFileTypes,
LPCTSTR pszAllFilesDescription = NULL,
DWORD dwExclude = excludeDefaultLoad,
TCHAR chSeparator = _T('|'));
Parametri
strImporters
Riferimento a un oggetto CSimpleString
. Vedere osservazioni Per ulteriori informazioni.
aguidFileTypes
Matrice di GUID, con ogni elemento corrispondente a uno dei tipi di file nella stringa. Nell'esempio riportato di pszAllFilesDescription
seguito, *aguidFileTypes[0]*
è GUID_NULL
con i valori di matrice rimanenti sono i formati di file di immagine supportati dal sistema operativo corrente.
Nota
Per un elenco completo delle costanti, vedere Costanti del formato di file di immagine in Windows SDK.
pszAllFilesDescription
Se questo parametro non NULL
è , la stringa di filtro avrà un filtro aggiuntivo all'inizio dell'elenco. Questo filtro avrà il valore corrente di pszAllFilesDescription
per la relativa descrizione e accetta i file di qualsiasi estensione supportata da qualsiasi altro esportatore nell'elenco.
Ad esempio:
//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
Set di flag di bit che specificano i tipi di file da escludere dall'elenco. I flag consentiti sono:
excludeGIF
= 0x01 Esclude i file GIF.excludeBMP
= 0x02 Esclude i file BMP (Bitmap di Windows).excludeEMF
= 0x04 esclude i file EMF (Enhanced Metafile).excludeWMF
= 0x08 esclude i file WMF (Windows Metafile).excludeJPEG
= 0x10 Esclude i file JPEG.excludePNG
= 0x20 Esclude i file PNG.excludeTIFF
= 0x40 Esclude i file TIFF.excludeIcon
= 0x80 esclude i file ICO (icona di Windows).excludeOther
= 0x80000000 Esclude qualsiasi altro tipo di file non elencato in precedenza.excludeDefaultLoad
= 0 Per il caricamento, tutti i tipi di file sono inclusi per impostazione predefinitaexcludeDefaultSave
=excludeIcon | excludeEMF | excludeWMF
Per il salvataggio, questi file vengono esclusi per impostazione predefinita perché in genere hanno requisiti speciali.
chSeparator
Separatore utilizzato tra i formati di immagine. Vedere osservazioni Per ulteriori informazioni.
Osservazioni:
È possibile passare la stringa di formato risultante all'oggetto MFC CFileDialog
per esporre le estensioni di file dei formati di immagine disponibili nella finestra di dialogo Apri file.
Il parametro strImporter
ha il formato:
'Descrizione file 0|. ext0|file description 1|. ext1|... descrizione file N|*.extN||
dove |
è il carattere separatore specificato da chSeparator
. Ad esempio:
"Bitmap format|*.bmp|JPEG format|*.jpg|GIF format|*.gif|PNG format|*.png||"
Usare il separatore |
predefinito se si passa questa stringa a un oggetto MFC CFileDialog
. Usare il separatore '\0'
Null se si passa questa stringa a una finestra di dialogo comune Apri file.
CImage::GetMaxColorTableEntries
Recupera il numero massimo di voci nella tabella colori.
int GetMaxColorTableEntries() const throw();
Valore restituito
Numero di voci nella tabella colori.
Osservazioni:
Questo metodo supporta solo bitmap di sezione DIB.
CImage::GetPitch
Recupera il passo di un'immagine.
int GetPitch() const throw();
Valore restituito
Passo dell'immagine. Se il valore restituito è negativo, la bitmap è un DIB inferiore e l'origine è l'angolo inferiore sinistro. Se il valore restituito è positivo, la bitmap è un DIB dall'alto verso il basso e l'origine è l'angolo superiore sinistro.
Osservazioni:
Il passo è la distanza, in byte, tra due indirizzi di memoria che rappresentano l'inizio di una riga bitmap e l'inizio della riga bitmap successiva. Poiché il passo viene misurato in byte, l'inclinazione di un'immagine consente di determinare il formato pixel. Il passo può includere anche memoria aggiuntiva, riservata per la bitmap.
Usare GetPitch
con GetBits
per trovare singoli pixel di un'immagine.
Nota
Questo metodo supporta solo bitmap di sezione DIB.
CImage::GetPixel
Recupera il colore del pixel nella posizione specificata da x e y.
COLORREF GetPixel(int x, int y) const throw();
Parametri
x
Coordinata x del pixel.
y
Coordinata y del pixel.
Valore restituito
Valore rosso, verde, blu (RGB) del pixel. Se il pixel non rientra nell'area di ritaglio corrente, il valore restituito è CLR_INVALID
.
CImage::GetPixelAddress
Recupera l'indirizzo esatto di un pixel.
void* GetPixelAddress(int x, int y) throw();
Parametri
x
Coordinata x del pixel.
y
Coordinata y del pixel.
Osservazioni:
L'indirizzo viene determinato in base alle coordinate di un pixel, al passo della bitmap e ai bit per pixel.
Per i formati con meno di 8 bit per pixel, questo metodo restituisce l'indirizzo del byte contenente il pixel. Ad esempio, se il formato dell'immagine ha 4 bit per pixel, GetPixelAddress
restituisce l'indirizzo del primo pixel nel byte ed è necessario calcolare per 2 pixel per byte.
Nota
Questo metodo supporta solo bitmap di sezione DIB.
CImage::GetTransparentColor
Recupera la posizione indicizzata del colore trasparente nella tavolozza dei colori.
LONG GetTransparentColor() const throw();
Valore restituito
Indice del colore trasparente.
CImage::GetWidth
Recupera la larghezza, espressa in pixel, di un'immagine.
int GetWidth() const throw();
Valore restituito
Larghezza della bitmap, espressa in pixel.
CImage::IsDIBSection
Determina se la bitmap associata è una sezione DIB.
bool IsDIBSection() const throw();
Valore restituito
TRUE
se la bitmap associata è una sezione DIB. In caso contrario, FALSE
.
Osservazioni:
Se la bitmap non è una sezione DIB, non è possibile usare i metodi seguenti CImage
, che supportano solo bitmap di sezione DIB:
CImage::IsIndexed
Determina se i pixel di una bitmap vengono mappati a una tavolozza dei colori.
bool IsIndexed() const throw();
Valore restituito
TRUE
se indicizzato; in caso contrario FALSE
, .
Osservazioni:
Questo metodo restituisce TRUE
solo se la bitmap è a 8 bit (256 colori) o meno.
Nota
Questo metodo supporta solo bitmap di sezione DIB.
CImage::IsNull
Determina se una bitmap è attualmente caricata.
bool IsNull() const throw();
Osservazioni:
Questo metodo restituisce TRUE
se una bitmap non è attualmente caricata; in caso contrario FALSE
, .
CImage::IsTransparencySupported
Indica se l'applicazione supporta bitmap trasparenti.
static BOOL IsTransparencySupported() throw();
Valore restituito
Diverso da zero se la piattaforma corrente supporta la trasparenza. In caso contrario, 0
Osservazioni:
Se il valore restituito è diverso da zero e la trasparenza è supportata, una chiamata a AlphaBlend
, TransparentBlt
o Draw
gestirà i colori trasparenti.
CImage::Load
Carica un'immagine.
HRESULT Load(LPCTSTR pszFileName) throw();
HRESULT Load(IStream* pStream) throw();
Parametri
pszFileName
Puntatore a una stringa contenente il nome del file di immagine da caricare.
pStream
Puntatore a un flusso contenente il nome del file di immagine da caricare.
Valore restituito
Oggetto standard HRESULT
.
Osservazioni:
Carica l'immagine specificata da pszFileName
o pStream
.
I tipi di immagine validi sono BMP, GIF, JPEG, PNG e TIFF.
CImage::LoadFromResource
Carica un'immagine da una BITMAP
risorsa.
void LoadFromResource(
HINSTANCE hInstance,
LPCTSTR pszResourceName) throw();
void LoadFromResource(
HINSTANCE hInstance,
UINT nIDResource) throw();
Parametri
hInstance
Handle in un'istanza del modulo che contiene l'immagine da caricare.
pszResourceName
Puntatore alla stringa contenente il nome della risorsa contenente l'immagine da caricare.
nIDResource
ID della risorsa da caricare.
Osservazioni:
La risorsa deve essere di tipo BITMAP
.
CImage::MaskBlt
Combina i dati di colore per le bitmap di origine e di destinazione usando l'operazione di maschera e raster specificata.
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();
Parametri
hDestDC
Handle del modulo il cui eseguibile contiene la risorsa.
xDest
Coordinata x, in unità logiche, dell'angolo superiore sinistro del rettangolo di destinazione.
yDest
Coordinata y, in unità logiche, dell'angolo superiore sinistro del rettangolo di destinazione.
nDestWidth
Larghezza, in unità logiche, del rettangolo di destinazione e della bitmap di origine.
nDestHeight
Altezza, in unità logiche, del rettangolo di destinazione e della bitmap di origine.
xSrc
Coordinata x logica dell'angolo superiore sinistro della bitmap di origine.
ySrc
Coordinata y logica dell'angolo superiore sinistro della bitmap di origine.
hbmMask
Handle per la bitmap della maschera monocromatica combinata con la bitmap del colore nel contesto del dispositivo di origine.
xMask
Offset di pixel orizzontale per la bitmap mask specificata dal hbmMask
parametro .
yMask
Offset di pixel verticale per la bitmap mask specificata dal hbmMask
parametro .
dwROP
Specifica i codici di operazione raster ternaria in primo piano e in background utilizzati dal metodo per controllare la combinazione di dati di origine e di destinazione. Il codice dell'operazione raster in background viene archiviato nel byte di ordine elevato della parola di questo valore in ordine elevato; il codice dell'operazione raster in primo piano viene archiviato nel byte di ordine basso della parola di questo valore in ordine elevato; la parola in ordine basso di questo valore viene ignorata e deve essere zero. Per una discussione in primo piano e in background nel contesto di questo metodo, vedere MaskBlt
in Windows SDK. Per un elenco dei codici di operazione raster comuni, vedere BitBlt
in Windows SDK.
rectDest
Riferimento a una RECT
struttura che identifica la destinazione.
pointSrc
Struttura POINT
che indica l'angolo superiore sinistro del rettangolo di origine.
pointMask
Struttura POINT
che indica l'angolo superiore sinistro della bitmap mask.
pointDest
Riferimento a una POINT
struttura che identifica l'angolo superiore sinistro del rettangolo di destinazione, in unità logiche.
Valore restituito
Diverso da zero se ha esito positivo; in caso contrario, 0.
Osservazioni:
Questo metodo si applica solo a Windows NT, versioni 4.0 e successive.
CImage::operator HBITMAP
Utilizzare questo operatore per ottenere l'handle GDI di Windows collegato dell'oggetto CImage
. Questo operatore è un operatore di cast che supporta l'uso diretto di un HBITMAP
oggetto .
CImage::PlgBlt
Esegue un trasferimento di blocchi di bit da un rettangolo in un contesto di dispositivo di origine in un parallelogramma in un contesto di dispositivo di destinazione.
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();
Parametri
hDestDC
Handle per il contesto del dispositivo di destinazione.
pPoints
Puntatore a una matrice di tre punti nello spazio logico che identifica tre angoli del parallelogramma di destinazione. L'angolo superiore sinistro del rettangolo di origine viene mappato al primo punto di questa matrice, all'angolo superiore destro del secondo punto della matrice e all'angolo inferiore sinistro del terzo punto. L'angolo inferiore destro del rettangolo di origine viene mappato al quarto punto implicito nel parallelogramma.
hbmMask
Handle per una bitmap monocromatica facoltativa usata per mascherare i colori del rettangolo di origine.
xSrc
Coordinata x, in unità logiche, dell'angolo superiore sinistro del rettangolo di origine.
ySrc
Coordinata y, in unità logiche, dell'angolo superiore sinistro del rettangolo di origine.
nSrcWidth
Larghezza, in unità logiche, del rettangolo di origine.
nSrcHeight
Altezza, in unità logiche, del rettangolo di origine.
xMask
Coordinata x dell'angolo superiore sinistro della bitmap monocromatica.
yMask
Coordinata y dell'angolo superiore sinistro della bitmap monocromatica.
rectSrc
Riferimento a una RECT
struttura che specifica le coordinate del rettangolo di origine.
pointMask
Struttura POINT
che indica l'angolo superiore sinistro della bitmap mask.
Valore restituito
Diverso da zero se ha esito positivo; in caso contrario, 0.
Osservazioni:
Se hbmMask
identifica una bitmap monocromatica valida, PlgBit
usa questa bitmap per mascherare i bit di dati di colore dal rettangolo di origine.
Questo metodo si applica solo a Windows NT, versioni 4.0 e successive. Per informazioni più dettagliate, vedere PlgBlt
in Windows SDK.
CImage::ReleaseDC
Rilascia il contesto del dispositivo.
void ReleaseDC() const throw();
Osservazioni:
Poiché è possibile selezionare una sola bitmap in un contesto di dispositivo alla volta, è necessario chiamare ReleaseDC
per ogni chiamata a GetDC
.
CImage::ReleaseGDIPlus
Rilascia le risorse usate da GDI+.
void ReleaseGDIPlus() throw();
Osservazioni:
Questo metodo deve essere chiamato per liberare risorse allocate da un oggetto globale CImage
. Vedere CImage::CImage
.
CImage::Save
Salva un'immagine nel flusso o nel file specificato su disco.
HRESULT Save(
IStream* pStream,
REFGUID guidFileType) const throw();
HRESULT Save(
LPCTSTR pszFileName,
REFGUID guidFileType = GUID_NULL) const throw();
Parametri
pStream
Puntatore a un oggetto COM IStream contenente i dati dell'immagine del file.
pszFileName
Puntatore al nome del file per l'immagine.
guidFileType
Tipo di file con cui salvare l'immagine. Può essere uno dei seguenti:
ImageFormatBMP
Immagine bitmap non compressa.ImageFormatPNG
Immagine compressa PNG (Portable Network Graphic).ImageFormatJPEG
Immagine compressa JPEG.ImageFormatGIF
Immagine compressa GIF.
Nota
Per un elenco completo delle costanti, vedere Costanti del formato di file di immagine in Windows SDK.
Valore restituito
Oggetto standard HRESULT
.
Osservazioni:
Chiamare questa funzione per salvare l'immagine usando un nome e un tipo specificati. Se il guidFileType
parametro non è incluso, l'estensione del file verrà usata per determinare il formato dell'immagine. Se non viene fornita alcuna estensione, l'immagine verrà salvata in formato BMP.
CImage::SetColorTable
Imposta i valori di colore rosso, verde, blu (RGB) per un intervallo di voci nella tavolozza della sezione DIB.
void SetColorTable(
UINT iFirstColor,
UINT nColors,
const RGBQUAD* prgbColors) throw();
Parametri
iFirstColor
Indice della tabella dei colori della prima voce da impostare.
nColors
Numero di voci della tabella colori da impostare.
prgbColors
Puntatore alla matrice di RGBQUAD
strutture per impostare le voci della tabella dei colori.
Osservazioni:
Questo metodo supporta solo bitmap di sezione DIB.
CImage::SetPixel
Imposta il colore di un pixel in una determinata posizione nella bitmap.
void SetPixel(int x, int y, COLORREF color) throw();
Parametri
x
Posizione orizzontale del pixel da impostare.
y
Posizione verticale del pixel da impostare.
color
Colore su cui impostare il pixel.
Osservazioni:
Questo metodo ha esito negativo se le coordinate pixel si trovano all'esterno dell'area di ritaglio selezionata.
CImage::SetPixelIndexed
Imposta il colore del pixel sul colore che si trova iIndex
nella tavolozza dei colori.
void SetPixelIndexed(int x, int y, int iIndex) throw();
Parametri
x
Posizione orizzontale del pixel da impostare.
y
Posizione verticale del pixel da impostare.
iIndex
Indice di un colore nella tavolozza dei colori.
CImage::SetPixelRGB
Imposta il pixel nelle posizioni specificate da x
e y
sui colori indicati da r
, g
e b
, in un'immagine rosso, verde, blu (RGB).
void SetPixelRGB(
int x,
int y,
BYTE r,
BYTE g,
BYTE b) throw();
Parametri
x
Posizione orizzontale del pixel da impostare.
y
Posizione verticale del pixel da impostare.
r
Intensità del colore rosso.
g
Intensità del colore verde.
b
Intensità del colore blu.
Osservazioni:
I parametri rosso, verde e blu sono rappresentati da un numero compreso tra 0 e 255. Se si impostano tutti e tre i parametri su zero, il colore risultante combinato è nero. Se si impostano tutti e tre i parametri su 255, il colore risultante combinato è bianco.
CImage::SetTransparentColor
Imposta un colore in corrispondenza di una determinata posizione indicizzata come trasparente.
LONG SetTransparentColor(LONG iTransparentColor) throw();
Parametri
iTransparentColor
Indice, in una tavolozza dei colori, del colore da impostare su trasparente. Se -1, nessun colore è impostato su trasparente.
Valore restituito
Indice del colore impostato in precedenza come trasparente.
CImage::StretchBlt
Copia una bitmap dal contesto del dispositivo di origine in questo contesto di dispositivo corrente.
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();
Parametri
hDestDC
Handle per il contesto del dispositivo di destinazione.
xDest
Coordinata x, in unità logiche, dell'angolo superiore sinistro del rettangolo di destinazione.
yDest
Coordinata y, in unità logiche, dell'angolo superiore sinistro del rettangolo di destinazione.
nDestWidth
Larghezza, in unità logiche, del rettangolo di destinazione.
nDestHeight
Altezza, in unità logiche, del rettangolo di destinazione.
dwROP
Operazione raster da eseguire. I codici di operazione raster definiscono esattamente come combinare i bit dell'origine, la destinazione e il modello (come definito dal pennello attualmente selezionato) per formare la destinazione. Vedere BitBlt
in Windows SDK per un elenco di altri codici di operazione raster e le relative descrizioni.
rectDest
Riferimento a una RECT
struttura che identifica la destinazione.
xSrc
Coordinata x, in unità logiche, dell'angolo superiore sinistro del rettangolo di origine.
ySrc
Coordinata y, in unità logiche, dell'angolo superiore sinistro del rettangolo di origine.
nSrcWidth
Larghezza, in unità logiche, del rettangolo di origine.
nSrcHeight
Altezza, in unità logiche, del rettangolo di origine.
rectSrc
Riferimento a una RECT
struttura che identifica l'origine.
Valore restituito
Diverso da zero se ha esito positivo; in caso contrario, 0.
Osservazioni:
Per altre informazioni, vedere StretchBlt
in Windows SDK.
CImage::TransparentBlt
Copia una bitmap dal contesto del dispositivo di origine in questo contesto di dispositivo corrente.
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();
Parametri
hDestDC
Handle per il contesto del dispositivo di destinazione.
xDest
Coordinata x, in unità logiche, dell'angolo superiore sinistro del rettangolo di destinazione.
yDest
Coordinata y, in unità logiche, dell'angolo superiore sinistro del rettangolo di destinazione.
nDestWidth
Larghezza, in unità logiche, del rettangolo di destinazione.
nDestHeight
Altezza, in unità logiche, del rettangolo di destinazione.
crTransparent
Colore nella bitmap di origine da considerare trasparente. Per impostazione predefinita, CLR_INVALID
, che indica che il colore attualmente impostato come colore trasparente dell'immagine deve essere usato.
rectDest
Riferimento a una RECT
struttura che identifica la destinazione.
xSrc
Coordinata x, in unità logiche, dell'angolo superiore sinistro del rettangolo di origine.
ySrc
Coordinata y, in unità logiche, dell'angolo superiore sinistro del rettangolo di origine.
nSrcWidth
Larghezza, in unità logiche, del rettangolo di origine.
nSrcHeight
Altezza, in unità logiche, del rettangolo di origine.
rectSrc
Riferimento a una RECT
struttura che identifica l'origine.
Valore restituito
TRUE
se ha esito positivo; in caso contrario FALSE
, .
Osservazioni:
TransparentBlt
è supportato per bitmap di origine di 4 bit per pixel e 8 bit per pixel. Usare CImage::AlphaBlend
per specificare bitmap a 32 bit per pixel con trasparenza.
Esempio
// 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;
}
Vedi anche
MMXSwarm
Campione
SimpleImage
Campione
Bitmap indipendenti dal dispositivo
CreateDIBSection
Componenti Desktop COM ATL
Bitmap indipendenti dal dispositivo