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
CImage
př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 Attach
můž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 CDC
souboru . 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 HDC
CImage
. 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::AppendMenu
je , 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 aCImage::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 aCImage::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ě, ženBPP
je 32 aeCompression
jeBI_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::Draw
obrá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ě, ženBPP
je 32 aeCompression
jeBI_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::Draw
obrá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 GetPitch
hodnotou 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
, TransparentBlt
nebo 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
, g
a 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_INVALID
která 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í