Sdílet prostřednictvím


CImage Třída

CImage poskytuje vylepšenou podporu rastrových obrázků, včetně možnosti načítání a ukládání obrázků ve formátech JPEG, GIF, BMP a Portable Network Graphics (PNG).

Důležité

Tuto třídu a její členy nelze použít v aplikacích, které se spouští v prostředí Windows Runtime.

Syntaxe

class CImage

Členové

Veřejné konstruktory

Název Popis
CImage::CImage Konstruktor

Veřejné metody

Název Popis
CImage::AlphaBlend Zobrazí rastrové obrázky, které mají průhledné nebo poloprůhledné pixely.
CImage::Attach Připojí objekt HBITMAP CImage . Lze použít s rastrovými obrázky oddílů jiného typu než DIB nebo s rastrovými obrázky oddílů DIB.
CImage::BitBlt Zkopíruje rastrový obrázek ze zdrojového kontextu zařízení do tohoto aktuálního kontextu zařízení.
CImage::Create Vytvoří rastrový obrázek oddílu DIB a připojí ho k dříve vytvořenému CImage objektu.
CImage::CreateEx Vytvoří rastrový obrázek oddílu DIB (s dalšími parametry) a připojí ho k dříve vytvořenému CImage objektu.
CImage::Destroy Odpojte rastrový obrázek od objektu CImage a zničí bitmapu.
CImage::Detach Odpojte rastrový obrázek od objektu CImage .
CImage::Draw Zkopíruje rastrový obrázek ze zdrojového obdélníku do cílového obdélníku. Draw v případě potřeby roztáhne nebo zkomprimuje rastrový obrázek tak, aby odpovídal rozměrům cílového obdélníku, a v případě potřeby zpracovává alfa prolnutí a průhledné barvy.
CImage::GetBits Načte ukazatel na skutečné hodnoty pixelů rastrového obrázku.
CImage::GetBPP Načte bity na pixel.
CImage::GetColorTable Načte červené, zelené, modré (RGB) hodnoty barev z rozsahu položek v tabulce barev.
CImage::GetDC Načte kontext zařízení, do kterého je vybrán aktuální rastrový obrázek.
CImage::GetExporterFilterString Najde dostupné formáty obrázků a jejich popisy.
CImage::GetHeight Načte výšku aktuálního obrázku v pixelech.
CImage::GetImporterFilterString Najde dostupné formáty obrázků a jejich popisy.
CImage::GetMaxColorTableEntries Načte maximální počet položek v tabulce barev.
CImage::GetPitch Načte výšku aktuálního obrázku v bajtech.
CImage::GetPixel Načte barvu pixelu určeného operátorem x a y.
CImage::GetPixelAddress Načte adresu daného pixelu.
CImage::GetTransparentColor Načte pozici průhledné barvy v tabulce barev.
CImage::GetWidth Načte šířku aktuálního obrázku v pixelech.
CImage::IsDIBSection Určuje, zda je připojený rastrový obrázek oddíl DIB.
CImage::IsIndexed Označuje, že barvy rastrového obrázku jsou mapovány na indexovanou paletu.
CImage::IsNull Určuje, jestli je aktuálně načten zdrojový rastrový obrázek.
CImage::IsTransparencySupported Určuje, zda aplikace podporuje průhledné rastrové obrázky.
CImage::Load Načte obrázek ze zadaného souboru.
CImage::LoadFromResource Načte obrázek ze zadaného prostředku.
CImage::MaskBlt Kombinuje barevná data pro zdrojové a cílové rastrové obrázky pomocí zadané masky a rastrové operace.
CImage::PlgBlt Provádí přenos bitového bloku z obdélníku v kontextu zdrojového zařízení do paralelogramu v kontextu cílového zařízení.
CImage::ReleaseDC Uvolní kontext zařízení, který byl načten pomocí CImage::GetDC.
CImage::ReleaseGDIPlus Uvolní prostředky používané rozhraním GDI+. Musí být volána k uvolnění prostředků vytvořených globálním CImage objektem.
CImage::Save Uloží obrázek jako zadaný typ. Save nelze zadat možnosti obrázku.
CImage::SetColorTable Nastaví červené, zelené, modré RGB) hodnoty barev v rozsahu položek v tabulce barev oddílu DIB.
CImage::SetPixel Nastaví pixel na zadaných souřadnicích na zadanou barvu.
CImage::SetPixelIndexed Nastaví pixel na zadaných souřadnicích na barvu v zadaném indexu palety.
CImage::SetPixelRGB Nastaví pixel na zadaných souřadnicích na zadanou červenou, zelenou, modrou (RGB) hodnotu.
CImage::SetTransparentColor Nastaví index barvy, která má být považována za průhlednou. Průhledná může být pouze jedna barva v paletě.
CImage::StretchBlt Zkopíruje rastrový obrázek ze zdrojového obdélníku do cílového obdélníku, v případě potřeby roztáhne nebo zkomprimuje rastrový obrázek tak, aby odpovídal rozměrům cílového obdélníku.
CImage::TransparentBlt Zkopíruje rastrový obrázek s průhlednou barvou ze zdrojového kontextu zařízení do tohoto aktuálního kontextu zařízení.

Veřejné operátory

Název Popis
CImage::operator HBITMAP Vrátí popisovač Windows připojený k objektu CImage .

Poznámky

CImagepřebírá rastrové obrázky, které jsou oddíly DIB (device-independent bitmap), nebo ne; můžete však použít nebo CImage::Load použít Create pouze oddíly DIB. K objektu Attachmůžete připojit rastrový obrázek oddíluCImage, který není DIB, ale pak nemůžete použít následující CImage metody, které podporují pouze rastrové obrázky oddílů DIB:

Chcete-li určit, zda připojený rastr je oddíl DIB, volání IsDibSection.

Poznámka:

V sadě Visual Studio .NET 2003 uchovává tato třída počet vytvořených CImage objektů. Kdykoli počet přejde na 0, funkce GdiplusShutdown se automaticky volá k uvolnění prostředků používaných rozhraním GDI+. Tím se zajistí, že všechny CImage objekty vytvořené přímo nebo nepřímo pomocí knihoven DLL jsou vždy zničeny správně a které GdiplusShutdown nejsou volány z DllMain.

Poznámka:

Použití globálních CImage objektů v knihovně DLL se nedoporučuje. Pokud potřebujete použít globální CImage objekt v knihovně DLL, zavolejte CImage::ReleaseGDIPlus explicitně vydané prostředky používané rozhraním GDI+.

CImage nelze vybrat do nového CDCsouboru . CImage vytvoří vlastní HDC image. HBITMAP Vzhledem k tomu, že lze vybrat pouze do jednoho po druhémHDC, HBITMAP nelze jej přidružit k jinému HDCCImage . Pokud potřebujete CDC, načtěte HDC z něj CImage a dejte mu CDC::FromHandle.

Příklady

// 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();

Při použití CImage v projektu MFC si všimněte, které členské funkce v projektu očekávají ukazatel na CBitmap objekt. Chcete-li použít CImage s takovou funkcí, jako CMenu::AppendMenuje , použijte CBitmap::FromHandle, předat jej CImage HBITMAP, a použít vrácený 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);
}

Prostřednictvím CImage, máte přístup k skutečným bitům oddílu DIB. Objekt můžete použít CImage kdekoli, kde jste dříve použili oddíl Win32 HBITMAP nebo DIB.

Můžete použít CImage z knihovny MFC nebo KNIHOVNY ATL.

Poznámka:

Při vytváření projektu pomocí CImage, musíte definovat CString před zahrnutím atlimage.h. Pokud váš projekt používá knihovnu ATL bez knihovny MFC, před zahrnutím zahrňte atlstr.h atlimage.h. Pokud váš projekt používá MFC (nebo pokud se jedná o projekt KNIHOVNY ATL s podporou MFC), před zahrnutím zahrňte afxstr.h atlimage.h.

Stejně tak musíte zahrnout atlimage.h před zahrnutím atlimpl.cpp. Abyste toho dosáhli snadno, zahrňte atlimage.h do sady pch.h (stdafx.h v sadě Visual Studio 2017 a starší).

Požadavky

Záhlaví: atlimage.h

CImage::AlphaBlend

Zobrazí rastrové obrázky, které mají průhledné nebo poloprůhledné pixely.

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);

Parametry

hDestDC
Popisovač kontextu cílového zařízení

xDest
Souřadnice x v logických jednotkách levého horního rohu cílového obdélníku.

yDest
Souřadnice y v logických jednotkách levého horního rohu cílového obdélníku.

bSrcAlpha
Hodnota alfa průhlednosti, která se má použít na celém zdrojovém rastrovém obrázku. Výchozí 0xff (255) předpokládá, že je obrázek neprůhlený a že chcete použít pouze alfa hodnoty na pixel.

bBlendOp
Funkce alfa prolnutí zdrojových a cílových rastrových obrázků, globální alfa hodnota, která se použije pro celý zdrojový rastrový obrázek, a informace o formátování zdrojového rastru. Funkce zdrojového a cílového mixu jsou v současné době omezené na AC_SRC_OVER.

pointDest
Odkaz na POINT strukturu, která identifikuje levý horní roh cílového obdélníku v logických jednotkách.

nDestWidth
Šířka cílového obdélníku v logických jednotkách.

nDestHeight
Výška cílového obdélníku v logických jednotkách.

xSrc
Logická souřadnice x levého horního rohu zdrojového obdélníku.

ySrc
Logická souřadnice y levého horního rohu zdrojového obdélníku.

nSrcWidth
Šířka zdrojového obdélníku v logických jednotkách.

nSrcHeight
Výška zdrojového obdélníku v logických jednotkách.

rectDest
Odkaz na RECT strukturu identifikující cíl.

rectSrc
Odkaz na RECT strukturu identifikující zdroj.

Návratová hodnota

Nenulové, pokud je úspěšné; jinak 0.

Poznámky

Rastrové obrázky alfa-blend podporují prolnutí barev na pixely.

Je-li bBlendOp nastavena na výchozí hodnotu AC_SRC_OVER, zdrojový rastrový obrázek se umístí na cílový rastr na základě alfa hodnot zdrojových pixelů.

CImage::Attach

hBitmap Připojí se k objektuCImage.

void Attach(HBITMAP hBitmap, DIBOrientation eOrientation = DIBOR_DEFAULT) throw();

Parametry

hBitmap
Popisovač k objektu HBITMAP.

eOrientation
Určuje orientaci rastrového obrázku. Může to být jedna z následujících možností:

  • DIBOR_DEFAULT Orientace rastrového obrázku je určena operačním systémem.

  • DIBOR_BOTTOMUP Řádky rastrového obrázku jsou v obráceném pořadí. To způsobí CImage::GetBits vrácení ukazatele na konci vyrovnávací paměti bitmapy a CImage::GetPitch vrácení záporného čísla.

  • DIBOR_TOPDOWN Řádky rastrového obrázku jsou v horním až dolním pořadí. To způsobí CImage::GetBits vrácení ukazatele na první bajt rastrové vyrovnávací paměti a CImage::GetPitch vrácení kladného čísla.

Poznámky

Rastrový obrázek může být rastrový obrázek jiného než DIB oddílu nebo rastrový obrázek oddílu DIB. Seznam IsDIBSection metod, které můžete použít pouze s rastrovými obrázky oddílů DIB.

CImage::BitBlt

Zkopíruje rastrový obrázek ze zdrojového kontextu zařízení do tohoto aktuálního kontextu zařízení.

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();

Parametry

hDestDC
Cíl HDC.

xDest
Logická souřadnice x levého horního rohu cílového obdélníku.

yDest
Logická souřadnice y levého horního rohu cílového obdélníku.

dwROP
Rastrová operace, která se má provést. Rastrové kódy operací přesně definují, jak zkombinovat bity zdroje, cíle a vzor (jak je definován aktuálně vybraným štětcem) a vytvořit cíl. Seznam BitBlt dalších kódů raster-operation a jejich popisů najdete v sadě Windows SDK.

pointDest
Struktura POINT označující levý horní roh cílového obdélníku.

nDestWidth
Šířka cílového obdélníku v logických jednotkách.

nDestHeight
Výška cílového obdélníku v logických jednotkách.

xSrc
Logická souřadnice x levého horního rohu zdrojového obdélníku.

ySrc
Logická souřadnice y levého horního rohu zdrojového obdélníku.

rectDest
Struktura RECT označující cílový obdélník.

pointSrc
Struktura POINT označující levý horní roh zdrojového obdélníku.

Návratová hodnota

Nenulové, pokud je úspěšné; jinak nula.

Poznámky

Další informace najdete BitBlt v sadě Windows SDK.

CImage::CImage

CImage Vytvoří objekt.

CImage() throw();

Poznámky

Po vytvoření objektu, volání Create, Load, LoadFromResource, nebo Attach připojení rastrového obrázku k objektu.

Poznámka: V sadě Visual Studio uchovává tato třída počet vytvořených CImage objektů. Kdykoli počet přejde na 0, funkce GdiplusShutdown se automaticky volá k uvolnění prostředků používaných rozhraním GDI+. Tím se zajistí, že všechny CImage objekty vytvořené přímo nebo nepřímo knihovnami DLL jsou vždy zničeny správně a které GdiplusShutdown nejsou volány z dllMain.

Použití globálních CImage objektů v knihovně DLL se nedoporučuje. Pokud potřebujete použít globální CImage objekt v knihovně DLL, zavolejte CImage::ReleaseGDIPlus explicitně vydané prostředky používané rozhraním GDI+.

CImage::Create

Vytvoří rastrový CImage obrázek a připojí ho k dříve vytvořenému CImage objektu.

BOOL Create(
    int nWidth,
    int nHeight,
    int nBPP,
    DWORD dwFlags = 0) throw();

Parametry

nWidth
Šířka rastrového obrázku CImage v pixelech.

nHeight
Výška rastrového obrázku CImage v pixelech. Pokud nHeight je rastrový obrázek kladný, je DIB směrem dolů a jeho původ je levý dolní roh. Pokud nHeight je rastrový obrázek záporný, je DIB shora dolů a jeho původ je levý horní roh.

nBPP
Počet bitů na pixel v rastrovém obrázku Obvykle 4, 8, 16, 24 nebo 32. Může být 1 pro monochromatické rastrové obrázky nebo masky.

dwFlags
Určuje, zda rastrový objekt má alfa kanál. Může to být kombinace nuly nebo více z následujících hodnot:

  • createAlphaChannel Lze použít pouze v případě, že nBPP je 32 a eCompression je BI_RGB. Pokud je zadáno, má vytvořený obrázek hodnotu alfa (průhlednost) pro každý pixel uložený v 4. bajtu každého pixelu (nepoužívá se v 32bitovém obrázku, který není alfa). Tento alfa kanál se automaticky používá při volání CImage::AlphaBlend.

Poznámka:

Při voláních se CImage::Drawobrázky s alfa kanálem automaticky směšují do cíle.

Návratová hodnota

Nenulové, pokud je úspěšné; jinak 0.

CImage::CreateEx

Vytvoří rastrový CImage obrázek a připojí ho k dříve vytvořenému CImage objektu.

BOOL CreateEx(
    int nWidth,
    int nHeight,
    int nBPP,
    DWORD eCompression,
    const DWORD* pdwBitmasks = NULL,
    DWORD dwFlags = 0) throw();

Parametry

nWidth
Šířka rastrového obrázku CImage v pixelech.

nHeight
Výška rastrového obrázku CImage v pixelech. Pokud nHeight je rastrový obrázek kladný, je DIB směrem dolů a jeho původ je levý dolní roh. Pokud nHeight je rastrový obrázek záporný, je DIB shora dolů a jeho původ je levý horní roh.

nBPP
Počet bitů na pixel v rastrovém obrázku Obvykle 4, 8, 16, 24 nebo 32. Může být 1 pro monochromatické rastrové obrázky nebo masky.

eCompression
Určuje typ komprese komprimovaného rastrového obrázku dole nahoru (databáze DIB shora dolů nelze komprimovat). Může to být jedna z následujících hodnot:

  • BI_RGB Formát je nekomprimovaný. Určení této hodnoty při volání CImage::CreateEx je ekvivalentní volání CImage::Create.

  • BI_BITFIELDS Formát je nekomprimovaný a tabulka barev se skládá ze tří DWORD barevných masek, které určují červenou, zelenou a modrou část každého pixelu. To platí při použití s rastrovými obrázky 16- a 32-bpp.

pdwBitfields
Používá se pouze v případě, že eCompression je nastavena na BI_BITFIELDS, jinak musí být NULL. Ukazatel na pole tří DWORD bitů masky určující, které bity každého pixelu se používají pro červené, zelené a modré součásti barvy. Informace o omezeních pro bitová pole najdete BITMAPINFOHEADER v sadě Windows SDK.

dwFlags
Určuje, zda rastrový objekt má alfa kanál. Může to být kombinace nuly nebo více z následujících hodnot:

  • createAlphaChannel Lze použít pouze v případě, že nBPP je 32 a eCompression je BI_RGB. Pokud je zadáno, má vytvořený obrázek hodnotu alfa (průhlednost) pro každý pixel uložený v 4. bajtu každého pixelu (nepoužívá se v 32bitovém obrázku, který není alfa). Tento alfa kanál se automaticky používá při volání CImage::AlphaBlend.

    Poznámka:

    Při voláních se CImage::Drawobrázky s alfa kanálem automaticky směšují do cíle.

Návratová hodnota

TRUE v případě úspěchu. Jinak FALSE.

Příklad

Následující příklad vytvoří rastrový obrázek o rozměrech 100 × 100 pixelů pomocí 16 bitů pro kódování každého pixelu. V daném 16bitovém pixelu bity 0-3 kódují červenou komponentu, bity 4-7 kódují zelenou a bity 8-11 kódují modrou. Zbývající 4 bity se nevyužívají.

DWORD adwBitmasks[3] = { 0x0000000f, 0x000000f0, 0x00000f00 };
m_myImage.CreateEx(100, 100, 16, BI_BITFIELDS, adwBitmasks, 0);

CImage::Destroy

Odpojte rastrový obrázek od objektu CImage a zničí bitmapu.

void Destroy() throw();

CImage::Detach

Odpojte rastrový obrázek od objektu CImage .

HBITMAP Detach() throw();

Návratová hodnota

Úchyt rastrového obrázku je odpojen nebo NULL není-li připojen žádný rastrový obrázek.

CImage::Draw

Zkopíruje rastrový obrázek z kontextu zdrojového zařízení do aktuálního kontextu zařízení.

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();

Parametry

hDestDC
Popisovač kontextu cílového zařízení.

xDest
Souřadnice x v logických jednotkách levého horního rohu cílového obdélníku.

yDest
Souřadnice y v logických jednotkách levého horního rohu cílového obdélníku.

nDestWidth
Šířka cílového obdélníku v logických jednotkách.

nDestHeight
Výška cílového obdélníku v logických jednotkách.

xSrc
Souřadnice x v logických jednotkách v levém horním rohu zdrojového obdélníku.

ySrc
Souřadnice y v logických jednotkách v levém horním rohu zdrojového obdélníku.

nSrcWidth
Šířka zdrojového obdélníku v logických jednotkách.

nSrcHeight
Výška zdrojového obdélníku v logických jednotkách.

rectDest
Odkaz na RECT strukturu identifikující cíl.

rectSrc
Odkaz na RECT strukturu identifikující zdroj.

pointDest
Odkaz na POINT strukturu, která identifikuje levý horní roh cílového obdélníku v logických jednotkách.

Návratová hodnota

Nenulové, pokud je úspěšné; jinak 0.

Poznámky

Draw provede stejnou operaci jako StretchBlt, pokud obrázek neobsahuje průhlednou barvu nebo alfa kanál. V takovém případě Draw provede stejnou operaci jako buď TransparentBlt nebo AlphaBlend podle potřeby.

Pro verze Draw , které nezadávají zdrojový obdélník, je výchozí celá zdrojová image. Pro verzi, která neurčí velikost cílového Draw obdélníku, je výchozí velikost zdrojového obrázku a nedojde k žádnému roztažení nebo zmenšení.

CImage::GetBits

Načte ukazatel na skutečné bitové hodnoty daného pixelu v rastrovém obrázku.

void* GetBits() throw();

Návratová hodnota

Ukazatel na vyrovnávací paměť bitmapy. Pokud je rastrový obrázek diB směrem dolů, ukazatel odkazuje na konec vyrovnávací paměti. Pokud je rastrový obrázek DIB shora dolů, ukazatel odkazuje na první bajt vyrovnávací paměti.

Poznámky

Pomocí tohoto ukazatele spolu s hodnotou vrácenou GetPitchhodnotou můžete vyhledat a změnit jednotlivé pixely na obrázku.

Poznámka:

Tato metoda podporuje pouze rastrové obrázky oddílů DIB; v důsledku toho přistupujete k pixelům CImage objektu stejným způsobem jako pixely oddílu DIB. Vrácený ukazatel odkazuje na pixel v umístění (0, 0).

CImage::GetBPP

Načte bity na pixelovou hodnotu.

int GetBPP() const throw();

Návratová hodnota

Počet bitů na pixel.

Poznámky

Tato hodnota určuje počet bitů, které definují každý pixel a maximální počet barev v rastrovém obrázku.

Bity na pixel jsou obvykle 1, 4, 8, 16, 24 nebo 32. biBitCount Další informace o této hodnotě najdete v členu BITMAPINFOHEADER sady Windows SDK.

CImage::GetColorTable

Načte červené, zelené, modré (RGB) barevné hodnoty z rozsahu položek v paletě oddílu DIB.

void GetColorTable(
    UINT iFirstColor,
    UINT nColors,
    RGBQUAD* prgbColors) const throw();

Parametry

iFirstColor
Index barevné tabulky první položky, která se má načíst.

nColors
Počet položek barevné tabulky, které se mají načíst.

prgbColors
Ukazatel na pole RGBQUAD struktur pro načtení položek barevné tabulky.

CImage::GetDC

Načte kontext zařízení, který má aktuálně vybraný obrázek.

HDC GetDC() const throw();

Návratová hodnota

Popisovač kontextu zařízení

Poznámky

Pro každé volání GetDC, musíte mít následné volání ReleaseDC.

CImage::GetExporterFilterString

Vyhledá formáty obrázků, které jsou k dispozici pro ukládání obrázků.

static HRESULT GetExporterFilterString(
    CSimpleString& strExporters,
    CSimpleArray<GUID>& aguidFileTypes,
    LPCTSTR pszAllFilesDescription = NULL,
    DWORD dwExclude = excludeDefaultSave,
    TCHAR chSeparator = _T('|'));

Parametry

strExporters
Odkaz na CSimpleString objekt. Další informace najdete v části Poznámky .

aguidFileTypes
Pole identifikátorů GUID, přičemž každý prvek odpovídá jednomu z typů souborů v řetězci. V následujícím aguidFileTypes[0] příkladu pszAllFilesDescription je GUID_NULL a zbývající hodnoty pole jsou formáty souborů bitové kopie podporované aktuálním operačním systémem.

Poznámka:

Úplný seznam konstant najdete v tématu Konstanty formátu souboru obrázku v sadě Windows SDK.

pszAllFilesDescription
Pokud tento parametr není NULL, řetězec filtru bude mít na začátku seznamu jeden další filtr. Tento filtr bude mít aktuální hodnotu pszAllFilesDescription popisu a přijme soubory libovolné přípony podporované jakýmkoli jiným vývozcem v seznamu.

Příklad:

//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
Sada bitových příznaků určující typy souborů, které se mají ze seznamu vyloučit. Povolené příznaky jsou:

  • excludeGIF = 0x01 vylučuje soubory GIF.

  • excludeBMP = 0x02 vylučuje soubory BMP (Windows Bitmap).

  • excludeEMF = 0x04 vylučuje soubory EMF (Enhanced Metafile).

  • excludeWMF = 0x08 vylučuje soubory WMF (Windows Metafile).

  • excludeJPEG = 0x10 vylučuje soubory JPEG.

  • excludePNG = 0x20 vylučuje soubory PNG.

  • excludeTIFF = 0x40 vylučuje soubory TIFF.

  • excludeIcon = 0x80 vylučuje soubory ICO (Ikona Systému Windows).

  • excludeOther = 0x80000000 Vylučuje jakýkoli jiný typ souboru, který není uvedený výše.

  • excludeDefaultLoad = 0 Pro načtení jsou ve výchozím nastavení zahrnuty všechny typy souborů.

  • excludeDefaultSave = excludeIcon | excludeEMF | excludeWMF Pro ukládání jsou tyto soubory ve výchozím nastavení vyloučeny, protože obvykle mají zvláštní požadavky.

chSeparator
Oddělovač použitý mezi formáty obrázků. Další informace najdete v části Poznámky .

Návratová hodnota

Standardní .HRESULT

Poznámky

Výsledný formátovací řetězec můžete předat objektu MFC CFileDialog a zpřístupnit přípony souborů dostupných formátů obrázků v dialogovém okně Uložit jako souboru.

strExporter Parametr má formát:

file description 0|*.ext0|file description 1|*.ext1|...file description N|*.extN||

kde | je znak oddělovače určený znakem chSeparator. Příklad:

"Bitmap format|*.bmp|JPEG format|*.jpg|GIF format|*.gif|PNG format|*.png||"

Pokud tento řetězec předáte objektu MFCCFileDialog, použijte výchozí oddělovač|. Pokud tento řetězec předáte do společného dialogového okna Uložit soubor, použijte oddělovač '\0' null.

CImage::GetHeight

Načte výšku obrázku v pixelech.

int GetHeight() const throw();

Návratová hodnota

Výška obrázku v pixelech.

CImage::GetImporterFilterString

Vyhledá formáty obrázků, které jsou k dispozici pro načítání obrázků.

static HRESULT GetImporterFilterString(
    CSimpleString& strImporters,
    CSimpleArray<GUID>& aguidFileTypes,
    LPCTSTR pszAllFilesDescription = NULL,
    DWORD dwExclude = excludeDefaultLoad,
    TCHAR chSeparator = _T('|'));

Parametry

strImporters
Odkaz na CSimpleString objekt. Další informace najdete v části Poznámky .

aguidFileTypes
Pole identifikátorů GUID, přičemž každý prvek odpovídá jednomu z typů souborů v řetězci. V následujícím příkladu pszAllFilesDescription je GUID_NULL *aguidFileTypes[0]* se zbývajícími hodnotami pole formáty souborů bitové kopie podporované aktuálním operačním systémem.

Poznámka:

Úplný seznam konstant najdete v tématu Konstanty formátu souboru obrázku v sadě Windows SDK.

pszAllFilesDescription
Pokud tento parametr není NULL, řetězec filtru bude mít na začátku seznamu jeden další filtr. Tento filtr bude mít aktuální hodnotu pszAllFilesDescription popisu a přijme soubory libovolné přípony podporované jakýmkoli jiným vývozcem v seznamu.

Příklad:

//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
Sada bitových příznaků určující typy souborů, které se mají ze seznamu vyloučit. Povolené příznaky jsou:

  • excludeGIF = 0x01 vylučuje soubory GIF.

  • excludeBMP = 0x02 vylučuje soubory BMP (Windows Bitmap).

  • excludeEMF = 0x04 vylučuje soubory EMF (Enhanced Metafile).

  • excludeWMF = 0x08 vylučuje soubory WMF (Windows Metafile).

  • excludeJPEG = 0x10 vylučuje soubory JPEG.

  • excludePNG = 0x20 vylučuje soubory PNG.

  • excludeTIFF = 0x40 vylučuje soubory TIFF.

  • excludeIcon = 0x80 vylučuje soubory ICO (Ikona Systému Windows).

  • excludeOther = 0x80000000 Vylučuje jakýkoli jiný typ souboru, který není uvedený výše.

  • excludeDefaultLoad = 0 Pro načtení jsou ve výchozím nastavení zahrnuty všechny typy souborů.

  • excludeDefaultSave = excludeIcon | excludeEMF | excludeWMF Pro ukládání jsou tyto soubory ve výchozím nastavení vyloučeny, protože obvykle mají zvláštní požadavky.

chSeparator
Oddělovač použitý mezi formáty obrázků. Další informace najdete v části Poznámky .

Poznámky

Výsledný formátovací řetězec můžete předat objektu MFC CFileDialog a zpřístupnit přípony souborů dostupných formátů obrázků v dialogovém okně Otevřít soubor.

strImporter Parametr má formát:

'popis souboru 0|. ext0|popis souboru 1|. ext1|... popis souboru N|*.extN||

kde | je znak oddělovače určený znakem chSeparator. Příklad:

"Bitmap format|*.bmp|JPEG format|*.jpg|GIF format|*.gif|PNG format|*.png||"

Pokud tento řetězec předáte objektu MFCCFileDialog, použijte výchozí oddělovač|. Pokud tento řetězec předáte do společného dialogového okna Otevřít soubor, použijte oddělovač '\0' null.

CImage::GetMaxColorTableEntries

Načte maximální počet položek v tabulce barev.

int GetMaxColorTableEntries() const throw();

Návratová hodnota

Počet položek v tabulce barev.

Poznámky

Tato metoda podporuje pouze rastrové obrázky oddílů DIB.

CImage::GetPitch

Načte výšku obrázku.

int GetPitch() const throw();

Návratová hodnota

Rozteč obrázku. Pokud je návratová hodnota záporná, rastrový obrázek je DIB směrem dolů a jeho původ je levý dolní roh. Pokud je vrácená hodnota kladná, rastrový obrázek je DIB shora dolů a jeho původ je levý horní roh.

Poznámky

Rozteč je vzdálenost mezi dvěma adresami paměti, které představují začátek jedné rastrové čáry a začátek dalšího rastrového řádku. Vzhledem k tomu, že se rozteč měří v bajtech, pomůže vám rozteč obrázku určit formát pixelů. Rozteč může obsahovat také další paměť vyhrazenou pro rastrový obrázek.

GetBits Umožňuje GetPitch najít jednotlivé pixely obrázku.

Poznámka:

Tato metoda podporuje pouze rastrové obrázky oddílů DIB.

CImage::GetPixel

Načte barvu pixelu v umístění určeném x a y.

COLORREF GetPixel(int x, int y) const throw();

Parametry

x
Souřadnice x pixelu.

y
Souřadnice y pixelu.

Návratová hodnota

Červená, zelená, modrá (RGB) hodnota pixelu. Pokud je pixel mimo aktuální oblast oříznutí, je vrácená hodnota CLR_INVALID.

CImage::GetPixelAddress

Načte přesnou adresu pixelu.

void* GetPixelAddress(int x, int y) throw();

Parametry

x
Souřadnice x pixelu.

y
Souřadnice y pixelu.

Poznámky

Adresa je určena podle souřadnic pixelů, rozteč rastrového obrázku a bitů na pixel.

U formátů, které mají méně než 8 bitů na pixel, vrátí tato metoda adresu bajtu obsahujícího pixel. Pokud má například formát obrázku 4 bity na pixel, GetPixelAddress vrátí adresu prvního pixelu v bajtu a musíte vypočítat 2 pixely na bajt.

Poznámka:

Tato metoda podporuje pouze rastrové obrázky oddílů DIB.

CImage::GetTransparentColor

Načte indexované umístění průhledné barvy v paletě barev.

LONG GetTransparentColor() const throw();

Návratová hodnota

Index průhledné barvy.

CImage::GetWidth

Načte šířku obrázku v pixelech.

int GetWidth() const throw();

Návratová hodnota

Šířka rastrového obrázku v pixelech.

CImage::IsDIBSection

Určuje, zda je připojený rastrový obrázek oddíl DIB.

bool IsDIBSection() const throw();

Návratová hodnota

TRUE pokud je připojený rastrový obrázek oddíl DIB. Jinak FALSE.

Poznámky

Pokud rastrový obrázek není oddíl DIB, nemůžete použít následující CImage metody, které podporují pouze rastrové obrázky oddílů DIB:

CImage::IsIndexed

Určuje, zda jsou rastrové pixely mapovány na barevnou paletu.

bool IsIndexed() const throw();

Návratová hodnota

TRUE je-li indexováno; jinak FALSE.

Poznámky

Tato metoda vrátí TRUE pouze v případě, že rastrový obrázek je 8bitový (256 barev) nebo méně.

Poznámka:

Tato metoda podporuje pouze rastrové obrázky oddílů DIB.

CImage::IsNull

Určuje, zda je rastrový obrázek právě načten.

bool IsNull() const throw();

Poznámky

Tato metoda vrátí TRUE , pokud rastrový obrázek není aktuálně načten; jinak FALSE.

CImage::IsTransparencySupported

Určuje, zda aplikace podporuje průhledné rastrové obrázky.

static BOOL IsTransparencySupported() throw();

Návratová hodnota

Nenulové, pokud aktuální platforma podporuje transparentnost. Jinak 0.

Poznámky

Pokud je návratová hodnota nenulová a je podporována průhlednost, volání AlphaBlend, TransparentBltnebo Draw bude zpracovávat průhledné barvy.

CImage::Load

Načte obrázek.

HRESULT Load(LPCTSTR pszFileName) throw();
HRESULT Load(IStream* pStream) throw();

Parametry

pszFileName
Ukazatel na řetězec obsahující název souboru obrázku, který se má načíst.

pStream
Ukazatel na datový proud obsahující název souboru obrázku, který se má načíst.

Návratová hodnota

Standardní .HRESULT

Poznámky

Načte obrázek určený parametrem pszFileName nebo pStream.

Platné typy obrázků jsou BMP, GIF, JPEG, PNG a TIFF.

CImage::LoadFromResource

Načte obrázek z BITMAP prostředku.

void LoadFromResource(
    HINSTANCE hInstance,
    LPCTSTR pszResourceName) throw();

void LoadFromResource(
    HINSTANCE hInstance,
    UINT nIDResource) throw();

Parametry

hInstance
Popisovač instance modulu, který obsahuje image, která se má načíst.

pszResourceName
Ukazatel na řetězec obsahující název prostředku obsahujícího obrázek, který se má načíst.

nIDResource
ID prostředku, který se má načíst.

Poznámky

Prostředek musí být typu BITMAP.

CImage::MaskBlt

Kombinuje barevná data pro zdrojové a cílové rastrové obrázky pomocí zadané masky a rastrové operace.

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();

Parametry

hDestDC
Popisovač modulu, jehož spustitelný soubor obsahuje prostředek.

xDest
Souřadnice x v logických jednotkách levého horního rohu cílového obdélníku.

yDest
Souřadnice y v logických jednotkách levého horního rohu cílového obdélníku.

nDestWidth
Šířka cílového obdélníku a zdrojového rastrového obrázku v logických jednotkách.

nDestHeight
Výška cílového obdélníku a zdrojového rastrového obrázku v logických jednotkách.

xSrc
Logická souřadnice x levého horního rohu zdrojového rastrového obrázku.

ySrc
Logická souřadnice y levého horního rohu zdrojového rastrového obrázku.

hbmMask
Úchyt pro monochromatický rastrový obrázek masky v kombinaci s barevným rastrem v kontextu zdrojového zařízení.

xMask
Vodorovný posun pixelu pro rastrovou mapu masky určenou parametrem hbmMask .

yMask
Svislý pixel posun pro rastrovou mapu masky určenou parametrem hbmMask .

dwROP
Určuje kódy operací popředí i pozadí ternární raster, které metoda používá k řízení kombinace zdrojových a cílových dat. Rastrový kód rastrového kódu pozadí je uložen v bajtu s vysokým pořadím slova této hodnoty; rastrový kód popředí je uložen v bajtech s nízkým pořadím slova s vysokým pořadím této hodnoty; slovo s nízkým pořadím této hodnoty je ignorováno a mělo by být nula. Diskuzi o popředí a pozadí v kontextu této metody najdete MaskBlt v sadě Windows SDK. Seznam běžných kódů rastrových operací najdete BitBlt v sadě Windows SDK.

rectDest
Odkaz na RECT strukturu identifikující cíl.

pointSrc
Struktura POINT označující levý horní roh zdrojového obdélníku.

pointMask
Struktura POINT označující levý horní roh rastrového obrázku masky.

pointDest
Odkaz na POINT strukturu, která identifikuje levý horní roh cílového obdélníku v logických jednotkách.

Návratová hodnota

Nenulové, pokud je úspěšné, jinak 0.

Poznámky

Tato metoda se vztahuje pouze na systém Windows NT verze 4.0 a novější.

CImage::operator HBITMAP

Pomocí tohoto operátoru získáte připojený popisovač GDI windows objektu CImage . Tento operátor je operátor přetypování, který podporuje přímé použití objektu HBITMAP .

CImage::PlgBlt

Provádí přenos bitového bloku z obdélníku v kontextu zdrojového zařízení do paralelogramu v kontextu cílového zařízení.

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();

Parametry

hDestDC
Popisovač kontextu cílového zařízení.

pPoints
Ukazatel na pole tří bodů v logickém prostoru, který identifikuje tři rohy cílového paralelogramu. Levý horní roh zdrojového obdélníku je namapován na první bod v tomto poli, pravý horní roh na druhý bod v tomto poli a dolní levý roh třetího bodu. Pravý dolní roh zdrojového obdélníku je mapován na implicitní čtvrtý bod paralelogramu.

hbmMask
Úchyt pro volitelný monochromatický rastrový obrázek, který slouží k maskování barev zdrojového obdélníku.

xSrc
Souřadnice x v logických jednotkách v levém horním rohu zdrojového obdélníku.

ySrc
Souřadnice y v logických jednotkách v levém horním rohu zdrojového obdélníku.

nSrcWidth
Šířka zdrojového obdélníku v logických jednotkách.

nSrcHeight
Výška zdrojového obdélníku v logických jednotkách.

xMask
Souřadnice x levého horního rohu monochromatého rastrového obrázku.

yMask
Souřadnice y levého horního rohu monochromatické bitmapy.

rectSrc
Odkaz na RECT strukturu určující souřadnice zdrojového obdélníku.

pointMask
Struktura POINT označující levý horní roh rastrového obrázku masky.

Návratová hodnota

Nenulové, pokud je úspěšné, jinak 0.

Poznámky

Pokud hbmMask identifikuje platný monochromatický rastrový obrázek, PlgBit použije tento rastr k maskování bitů barevných dat ze zdrojového obdélníku.

Tato metoda se vztahuje pouze na systém Windows NT verze 4.0 a novější. Podrobnější informace najdete PlgBlt v sadě Windows SDK.

CImage::ReleaseDC

Uvolní kontext zařízení.

void ReleaseDC() const throw();

Poznámky

Vzhledem k tomu, že v kontextu zařízení lze současně vybrat pouze jeden rastrový obrázek, je nutné volat ReleaseDC pro každé volání GetDC.

CImage::ReleaseGDIPlus

Uvolní prostředky používané rozhraním GDI+.

void ReleaseGDIPlus() throw();

Poznámky

Tato metoda musí být volána k uvolnění prostředků přidělených globálním CImage objektem. Viz třída CImage::CImage.

CImage::Save

Uloží image do zadaného datového proudu nebo souboru na disku.

HRESULT Save(
    IStream* pStream,
    REFGUID guidFileType) const throw();

HRESULT Save(
    LPCTSTR pszFileName,
    REFGUID guidFileType = GUID_NULL) const throw();

Parametry

pStream
Ukazatel na objekt COM IStream obsahující data obrázku souboru.

pszFileName
Ukazatel na název souboru obrázku.

guidFileType
Typ souboru pro uložení obrázku jako. Může to být jedna z následujících možností:

  • ImageFormatBMP Nekomprimovaný rastrový obrázek.

  • ImageFormatPNG Komprimovaný obrázek PNG (Portable Network Graphic).

  • ImageFormatJPEG Komprimovaný obrázek VE FORMÁTU JPEG.

  • ImageFormatGIF Komprimovaný obrázek VE FORMÁTU GIF.

Poznámka:

Úplný seznam konstant najdete v tématu Konstanty formátu souboru obrázku v sadě Windows SDK.

Návratová hodnota

Standardní .HRESULT

Poznámky

Voláním této funkce uložíte obrázek pomocí zadaného názvu a typu. guidFileType Pokud parametr není součástí, přípona souboru názvu souboru se použije k určení formátu obrázku. Pokud není k dispozici žádné rozšíření, image se uloží ve formátu BMP.

CImage::SetColorTable

Nastaví červené, zelené, modré (RGB) barevné hodnoty pro rozsah položek v paletě oddílu DIB.

void SetColorTable(
    UINT iFirstColor,
    UINT nColors,
    const RGBQUAD* prgbColors) throw();

Parametry

iFirstColor
Index barevné tabulky první položky, která se má nastavit.

nColors
Počet položek barevné tabulky, které chcete nastavit.

prgbColors
Ukazatel na pole RGBQUAD struktur pro nastavení položek barevné tabulky.

Poznámky

Tato metoda podporuje pouze rastrové obrázky oddílů DIB.

CImage::SetPixel

Nastaví barvu pixelu na daném místě v rastrovém obrázku.

void SetPixel(int x, int y, COLORREF color) throw();

Parametry

x
Vodorovné umístění pixelu, které chcete nastavit.

y
Svislé umístění pixelu, které chcete nastavit.

color
Barva, na kterou nastavíte pixel.

Poznámky

Tato metoda selže, pokud souřadnice pixelů leží mimo vybranou oblast oříznutí.

CImage::SetPixelIndexed

Nastaví barvu pixelu na barvu umístěnou iIndex v paletě barev.

void SetPixelIndexed(int x, int y, int iIndex) throw();

Parametry

x
Vodorovné umístění pixelu, které chcete nastavit.

y
Svislé umístění pixelu, které chcete nastavit.

iIndex
Index barvy v paletě barev.

CImage::SetPixelRGB

Nastaví pixel v umístěních určených x y barvou a na barvy označené barvou r, ga b, v červeném, zeleném, modrém (RGB) obrázku.

void SetPixelRGB(
    int x,
    int y,
    BYTE r,
    BYTE g,
    BYTE b) throw();

Parametry

x
Vodorovné umístění pixelu, které chcete nastavit.

y
Svislé umístění pixelu, které chcete nastavit.

r
Intenzita červené barvy.

g
Intenzita zelené barvy.

b
Intenzita modré barvy.

Poznámky

Červené, zelené a modré parametry jsou reprezentovány číslem od 0 do 255. Pokud nastavíte všechny tři parametry na nulu, kombinovaná výsledná barva je černá. Pokud nastavíte všechny tři parametry na 255, výsledná barva je bílá.

CImage::SetTransparentColor

Nastaví barvu v daném indexovaném umístění jako průhlednou.

LONG SetTransparentColor(LONG iTransparentColor) throw();

Parametry

iTransparentColor
Index v paletě barev, která se má nastavit na průhlednou. Pokud -1, není žádná barva nastavená na průhlednou.

Návratová hodnota

Index barvy, která byla dříve nastavena jako průhledná.

CImage::StretchBlt

Zkopíruje rastrový obrázek ze zdrojového kontextu zařízení do tohoto aktuálního kontextu zařízení.

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();

Parametry

hDestDC
Popisovač kontextu cílového zařízení.

xDest
Souřadnice x v logických jednotkách levého horního rohu cílového obdélníku.

yDest
Souřadnice y v logických jednotkách levého horního rohu cílového obdélníku.

nDestWidth
Šířka cílového obdélníku v logických jednotkách.

nDestHeight
Výška cílového obdélníku v logických jednotkách.

dwROP
Rastrová operace, která se má provést. Rastrové kódy operací přesně definují, jak zkombinovat bity zdroje, cíle a vzor (jak je definován aktuálně vybraným štětcem) a vytvořit cíl. Seznam BitBlt dalších kódů raster-operation a jejich popisů najdete v sadě Windows SDK.

rectDest
Odkaz na RECT strukturu identifikující cíl.

xSrc
Souřadnice x v logických jednotkách v levém horním rohu zdrojového obdélníku.

ySrc
Souřadnice y v logických jednotkách v levém horním rohu zdrojového obdélníku.

nSrcWidth
Šířka zdrojového obdélníku v logických jednotkách.

nSrcHeight
Výška zdrojového obdélníku v logických jednotkách.

rectSrc
Odkaz na RECT strukturu identifikující zdroj.

Návratová hodnota

Nenulové, pokud je úspěšné, jinak 0.

Poznámky

Další informace najdete StretchBlt v sadě Windows SDK.

CImage::TransparentBlt

Zkopíruje rastrový obrázek ze zdrojového kontextu zařízení do tohoto aktuálního kontextu zařízení.

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();

Parametry

hDestDC
Popisovač kontextu cílového zařízení.

xDest
Souřadnice x v logických jednotkách levého horního rohu cílového obdélníku.

yDest
Souřadnice y v logických jednotkách levého horního rohu cílového obdélníku.

nDestWidth
Šířka cílového obdélníku v logických jednotkách.

nDestHeight
Výška cílového obdélníku v logických jednotkách.

crTransparent
Barva ve zdrojovém rastrovém obrázku, která má být považována za průhlednou. Ve výchozím nastavení by se měla použít barva, CLR_INVALIDkterá je aktuálně nastavená jako průhledná barva obrázku.

rectDest
Odkaz na RECT strukturu identifikující cíl.

xSrc
Souřadnice x v logických jednotkách v levém horním rohu zdrojového obdélníku.

ySrc
Souřadnice y v logických jednotkách v levém horním rohu zdrojového obdélníku.

nSrcWidth
Šířka zdrojového obdélníku v logických jednotkách.

nSrcHeight
Výška zdrojového obdélníku v logických jednotkách.

rectSrc
Odkaz na RECT strukturu identifikující zdroj.

Návratová hodnota

TRUE v případě úspěchu, jinak FALSE.

Poznámky

TransparentBlt podporuje zdrojové rastrové obrázky 4 bitů na pixel a 8 bitů na pixel. Slouží CImage::AlphaBlend k určení 32 bitů rastrových obrázků na pixel s průhledností.

Příklad

// 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;
}

Viz také

MMXSwarm Ukázka
SimpleImage Ukázka
Rastrové obrázky nezávislé na zařízení
CreateDIBSection
Desktopové komponenty ATL objektů COM
Rastrové obrázky nezávislé na zařízení