Condividi tramite


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 CDCoggetto . 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 HDCoggetto . Se è necessario , CDCrecuperare l'oggetto HDCCImage 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 CImageHBITMAPe 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_OVERorigine 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 modo CImage::GetBits viene restituito un puntatore vicino alla fine del buffer bitmap e CImage::GetPitch viene restituito un numero negativo.

  • DIBOR_TOPDOWN Le righe della bitmap sono in ordine superiore a inferiore. In questo modo CImage::GetBits viene restituito un puntatore al primo byte del buffer bitmap e CImage::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, LoadFromResourceLoad, 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 se nBPP è 32 e eCompression è 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 chiama CImage::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 chiama CImage::CreateEx equivale a chiamare CImage::Create.

  • BI_BITFIELDS Il formato non è compresso e la tabella dei colori è costituita da tre DWORD 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 se nBPP è 32 e eCompression è 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 chiama CImage::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 predefinita

  • excludeDefaultSave = 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 predefinita

  • excludeDefaultSave = 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, TransparentBlto 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, ge 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 Esempio
SimpleImage Esempio
Bitmap indipendenti dal dispositivo
CreateDIBSection
Componenti Desktop COM ATL
Bitmap indipendenti dal dispositivo