CImage
Klasa
CImage
Zapewnia ulepszoną obsługę map bitowych, w tym możliwość ładowania i zapisywania obrazów w formatach JPEG, GIF, BMP i Portable Network Graphics (PNG).
Ważne
Tej klasy i jej składowych nie można używać w aplikacjach wykonywanych w środowisko wykonawcze systemu Windows.
Składnia
class CImage
Elementy członkowskie
Konstruktory publiczne
Nazwa/nazwisko | opis |
---|---|
CImage::CImage |
Konstruktor. |
Metody publiczne
Nazwa/nazwisko | opis |
---|---|
CImage::AlphaBlend |
Wyświetla mapy bitowe, które mają przezroczyste lub półprzezroczyste piksele. |
CImage::Attach |
Dołącza obiekt HBITMAP do CImage obiektu. Można używać z mapami bitowymi sekcji innej niż DIB lub mapami bitowymi sekcji DIB. |
CImage::BitBlt |
Kopiuje mapę bitową z kontekstu urządzenia źródłowego do bieżącego kontekstu urządzenia. |
CImage::Create |
Tworzy mapę bitową sekcji DIB i dołącza ją do wcześniej skonstruowanego CImage obiektu. |
CImage::CreateEx |
Tworzy mapę bitową sekcji DIB (z dodatkowymi parametrami) i dołącza ją do wcześniej skonstruowanego CImage obiektu. |
CImage::Destroy |
Odłącza mapę bitową od CImage obiektu i niszczy mapę bitową. |
CImage::Detach |
Odłącza mapę bitową CImage od obiektu. |
CImage::Draw |
Kopiuje mapę bitową ze źródłowego prostokąta do prostokąta docelowego. Draw rozciąga lub kompresuje mapę bitową, aby dopasować wymiary prostokąta docelowego, w razie potrzeby, i obsługuje mieszanie alfa i przezroczyste kolory. |
CImage::GetBits |
Pobiera wskaźnik do rzeczywistych wartości pikseli mapy bitowej. |
CImage::GetBPP |
Pobiera bity na piksel. |
CImage::GetColorTable |
Pobiera wartości kolorów czerwony, zielony, niebieski (RGB) z zakresu wpisów w tabeli kolorów. |
CImage::GetDC |
Pobiera kontekst urządzenia, do którego wybrano bieżącą mapę bitową. |
CImage::GetExporterFilterString |
Znajduje dostępne formaty obrazów i ich opisy. |
CImage::GetHeight |
Pobiera wysokość bieżącego obrazu w pikselach. |
CImage::GetImporterFilterString |
Znajduje dostępne formaty obrazów i ich opisy. |
CImage::GetMaxColorTableEntries |
Pobiera maksymalną liczbę wpisów w tabeli kolorów. |
CImage::GetPitch |
Pobiera skok bieżącego obrazu w bajtach. |
CImage::GetPixel |
Pobiera kolor piksela określonego przez x i y . |
CImage::GetPixelAddress |
Pobiera adres danego piksela. |
CImage::GetTransparentColor |
Pobiera położenie przezroczystego koloru w tabeli kolorów. |
CImage::GetWidth |
Pobiera szerokość bieżącego obrazu w pikselach. |
CImage::IsDIBSection |
Określa, czy dołączona mapa bitowa jest sekcją DIB. |
CImage::IsIndexed |
Wskazuje, że kolory mapy bitowej są mapowane na indeksowaną paletę. |
CImage::IsNull |
Wskazuje, czy źródłowa mapa bitowa jest obecnie ładowana. |
CImage::IsTransparencySupported |
Wskazuje, czy aplikacja obsługuje przezroczyste mapy bitowe. |
CImage::Load |
Ładuje obraz z określonego pliku. |
CImage::LoadFromResource |
Ładuje obraz z określonego zasobu. |
CImage::MaskBlt |
Łączy dane kolorów dla źródłowych i docelowych map bitowych przy użyciu określonej maski i operacji rastrowania. |
CImage::PlgBlt |
Wykonuje transfer bitowy z prostokąta w kontekście urządzenia źródłowego do równoległegoogramu w kontekście urządzenia docelowego. |
CImage::ReleaseDC |
Zwalnia kontekst urządzenia, który został pobrany za pomocą CImage::GetDC polecenia . |
CImage::ReleaseGDIPlus |
Zwalnia zasoby używane przez interfejs GDI+. Musi być wywoływana w celu zwolnienia zasobów utworzonych przez obiekt globalny CImage . |
CImage::Save |
Zapisuje obraz jako określony typ. Save program nie może określić opcji obrazu. |
CImage::SetColorTable |
Ustawia wartości kolorów czerwony, zielony, niebieski RGB) w zakresie wpisów w tabeli kolorów sekcji DIB. |
CImage::SetPixel |
Ustawia piksel na określonych współrzędnych do określonego koloru. |
CImage::SetPixelIndexed |
Ustawia piksel na określonych współrzędnych na kolor w określonym indeksie palety. |
CImage::SetPixelRGB |
Ustawia piksel na określonych współrzędnych do określonej wartości czerwonej, zielonej, niebieskiej (RGB). |
CImage::SetTransparentColor |
Ustawia indeks koloru, który ma być traktowany jako przezroczysty. Tylko jeden kolor w palecie może być przezroczysty. |
CImage::StretchBlt |
Kopiuje mapę bitową ze źródłowego prostokąta do prostokąta docelowego, rozciągając lub kompresując mapę bitową w celu dopasowania do wymiarów prostokąta docelowego, w razie potrzeby. |
CImage::TransparentBlt |
Kopiuje mapę bitową z przezroczystym kolorem z kontekstu urządzenia źródłowego do bieżącego kontekstu urządzenia. |
Operatory publiczne
Nazwa/nazwisko | opis |
---|---|
CImage::operator HBITMAP |
Zwraca uchwyt systemu Windows dołączony do CImage obiektu. |
Uwagi
CImage
pobiera mapy bitowe, które są sekcjami mapy bitowej niezależnej od urządzenia (DIB) lub nie; można jednak używać Create
sekcji DIB lub CImage::Load
tylko z nich. Mapę bitową sekcji innej niż DIB można dołączyć do CImage
obiektu przy użyciu Attach
metody , ale nie można użyć następujących CImage
metod, które obsługują tylko mapy bitowe sekcji DIB:
Aby określić, czy dołączona mapa bitowa jest sekcją DIB, wywołaj metodę IsDibSection
.
Uwaga
W programie Visual Studio .NET 2003 ta klasa przechowuje liczbę utworzonych CImage
obiektów. Za każdym razem, gdy liczba przekroczy wartość 0, funkcja GdiplusShutdown
jest automatycznie wywoływana w celu zwolnienia zasobów używanych przez interfejs GDI+. Dzięki temu wszystkie CImage
obiekty utworzone bezpośrednio lub pośrednio przez biblioteki DLL są zawsze prawidłowo niszczone i nie GdiplusShutdown
są wywoływane z DllMain
klasy .
Uwaga
Używanie obiektów globalnych CImage
w dll nie jest zalecane. Jeśli musisz użyć obiektu globalnego CImage
w dll, wywołaj metodę CImage::ReleaseGDIPlus
jawnego zwolnienia zasobów używanych przez interfejs GDI+.
CImage
Nie można wybrać elementu w nowym CDC
obiekcie . CImage
tworzy własny HDC
obraz. HBITMAP
Ze względu na to, że element można wybrać tylko do jednego HDC
naraz, HBITMAP
nie można wybrać elementu skojarzonego z elementem CImage
w innym HDC
obiekcie . Jeśli potrzebujesz elementu CDC
, pobierz element HDC
z obiektu CImage
i nadaj go .CDC::FromHandle
Przykłady
// 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();
W przypadku użycia CImage
w projekcie MFC zwróć uwagę, które funkcje składowe w projekcie oczekują wskaźnika do CBitmap
obiektu. Jeśli chcesz użyć CImage
z taką funkcją, na przykład CMenu::AppendMenu
, użyj polecenia , przekaż ją HBITMAP
CImage
do elementu i użyj CBitmap::FromHandle
zwróconego CBitmap*
elementu .
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);
}
Za pośrednictwem CImage
programu masz dostęp do rzeczywistych bitów sekcji DIB. Możesz użyć obiektu w CImage
dowolnym miejscu, w którym wcześniej użyto sekcji Win32 HBITMAP
lub DIB.
Można użyć z CImage
MFC lub ATL.
Uwaga
Podczas tworzenia projektu przy użyciu polecenia CImage
należy zdefiniować CString
element przed dołączeniem atlimage.h
elementu . Jeśli projekt używa atl bez MFC, przed dołączeniem uwzględnij atlstr.h
wartość atlimage.h
. Jeśli projekt używa MFC (lub jeśli jest to projekt ATL z obsługą MFC), przed dołączeniem uwzględnij afxstr.h
element atlimage.h
.
Podobnie przed dołączeniem elementu należy uwzględnić wartość atlimage.h
atlimpl.cpp
. Aby to łatwo osiągnąć, uwzględnij atlimage.h
w programie pch.h
(stdafx.h
w programie Visual Studio 2017 i starszych wersjach).
Wymagania
Nagłówek: atlimage.h
CImage::AlphaBlend
Wyświetla mapy bitowe, które mają przezroczyste lub półprzezroczyste piksele.
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
Dojście do kontekstu urządzenia docelowego.
xDest
Współrzędna x w jednostkach logicznych lewego górnego rogu prostokąta docelowego.
yDest
Współrzędna y w jednostkach logicznych lewego górnego rogu prostokąta docelowego.
bSrcAlpha
Wartość przezroczystości alfa do użycia na całej źródłowej mapie bitowej. Domyślny 0xff (255) zakłada, że obraz jest nieprzezroczystym i że chcesz używać tylko wartości alfa na piksel.
bBlendOp
Funkcja mieszania alfa dla źródłowych i docelowych map bitowych, globalna wartość alfa, która ma być stosowana do całej źródłowej mapy bitowej i formatuje informacje dotyczące źródłowej mapy bitowej. Funkcje mieszania źródłowego i docelowego są obecnie ograniczone do AC_SRC_OVER
.
pointDest
Odwołanie do POINT
struktury identyfikującej lewy górny róg prostokąta docelowego w jednostkach logicznych.
nDestWidth
Szerokość w jednostkach logicznych prostokąta docelowego.
nDestHeight
Wysokość w jednostkach logicznych prostokąta docelowego.
xSrc
Logiczna współrzędna x lewego górnego rogu prostokąta źródłowego.
ySrc
Współrzędna logiczna lewego górnego rogu prostokąta źródłowego.
nSrcWidth
Szerokość w jednostkach logicznych prostokąta źródłowego.
nSrcHeight
Wysokość w jednostkach logicznych prostokąta źródłowego.
rectDest
Odwołanie do RECT
struktury identyfikujące miejsce docelowe.
rectSrc
Odwołanie do RECT
struktury identyfikujące źródło.
Wartość zwracana
Bezzerowe, jeśli się powiedzie; w przeciwnym razie 0.
Uwagi
Mapy bitowe alfa-blend obsługują łączenie kolorów na piksel.
Gdy bBlendOp
jest ustawiona wartość domyślna AC_SRC_OVER
, źródłowa mapa bitowa jest umieszczana na docelowej mapie bitowej na podstawie wartości alfa pikseli źródłowych.
CImage::Attach
hBitmap
Dołącza do CImage
obiektu.
void Attach(HBITMAP hBitmap, DIBOrientation eOrientation = DIBOR_DEFAULT) throw();
Parametry
hBitmap
Dojście do elementu HBITMAP
.
eOrientation
Określa orientację mapy bitowej. Może być jednym z następujących elementów:
DIBOR_DEFAULT
Orientacja mapy bitowej jest określana przez system operacyjny.DIBOR_BOTTOMUP
Linie mapy bitowej są w odwrotnej kolejności. PowodujeCImage::GetBits
to zwrócenie wskaźnika w pobliżu końca buforu mapy bitowej iCImage::GetPitch
zwrócenie liczby ujemnej.DIBOR_TOPDOWN
Linie mapy bitowej znajdują się w górnej kolejności do dołu. PowodujeCImage::GetBits
to zwrócenie wskaźnika do pierwszego bajtu buforu mapy bitowej iCImage::GetPitch
zwrócenie liczby dodatniej.
Uwagi
Mapa bitowa może być mapą bitową sekcji innej niż DIB lub mapą bitową sekcji DIB. Zobacz IsDIBSection
listę metod, których można używać tylko z mapami bitowymi sekcji DIB.
CImage::BitBlt
Kopiuje mapę bitową z kontekstu urządzenia źródłowego do bieżącego kontekstu urządzenia.
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
Miejsce docelowe HDC
.
xDest
Logiczna współrzędna x lewego górnego rogu prostokąta docelowego.
yDest
Współrzędna logiczna lewego górnego rogu prostokąta docelowego.
dwROP
Operację rastrową do wykonania. Kody operacji raster-definiują dokładnie sposób łączenia bitów źródła, miejsca docelowego i wzorca (zgodnie z definicją aktualnie wybranego pędzla) w celu utworzenia miejsca docelowego. Zobacz BitBlt
w zestawie Windows SDK, aby uzyskać listę innych kodów operacji rasterowych i ich opisów.
pointDest
Struktura POINT
wskazująca lewy górny róg prostokąta docelowego.
nDestWidth
Szerokość w jednostkach logicznych prostokąta docelowego.
nDestHeight
Wysokość w jednostkach logicznych prostokąta docelowego.
xSrc
Logiczna współrzędna x lewego górnego rogu prostokąta źródłowego.
ySrc
Współrzędna logiczna lewego górnego rogu prostokąta źródłowego.
rectDest
Struktura RECT
wskazująca prostokąt docelowy.
pointSrc
Struktura POINT
wskazująca lewy górny róg prostokąta źródłowego.
Wartość zwracana
Bezzerowe, jeśli się powiedzie; w przeciwnym razie zero.
Uwagi
Aby uzyskać więcej informacji, zobacz BitBlt
w zestawie Windows SDK.
CImage::CImage
CImage
Tworzy obiekt.
CImage() throw();
Uwagi
Po utworzeniu obiektu wywołaj metodę Create
, Load
, LoadFromResource
lub Attach
, aby dołączyć mapę bitową do obiektu .
Uwaga W programie Visual Studio ta klasa przechowuje liczbę utworzonych CImage
obiektów. Za każdym razem, gdy liczba przekroczy wartość 0, funkcja GdiplusShutdown
jest automatycznie wywoływana w celu zwolnienia zasobów używanych przez interfejs GDI+. Dzięki temu wszystkie CImage
obiekty utworzone bezpośrednio lub pośrednio przez biblioteki DLL są zawsze prawidłowo niszczone i nie GdiplusShutdown
są wywoływane z biblioteki DllMain.
Używanie obiektów globalnych CImage
w dll nie jest zalecane. Jeśli musisz użyć obiektu globalnego CImage
w dll, wywołaj metodę CImage::ReleaseGDIPlus
jawnego zwolnienia zasobów używanych przez interfejs GDI+.
CImage::Create
Tworzy mapę bitową CImage
i dołącza ją do wcześniej skonstruowanego CImage
obiektu.
BOOL Create(
int nWidth,
int nHeight,
int nBPP,
DWORD dwFlags = 0) throw();
Parametry
nWidth
Szerokość mapy bitowej CImage
w pikselach.
nHeight
Wysokość mapy bitowej CImage
w pikselach. Jeśli nHeight
jest dodatni, mapa bitowa jest diB dolna, a jego pochodzenie jest lewym dolnym rogu. Jeśli nHeight
jest ujemna, mapa bitowa jest od góry do dołu DIB, a jego pochodzenie jest lewym górnym rogu.
nBPP
Liczba bitów na piksel w mapie bitowej. Zazwyczaj 4, 8, 16, 24 lub 32. Może być 1 dla monochromatycznych map bitowych lub masek.
dwFlags
Określa, czy obiekt mapy bitowej ma kanał alfa. Może to być kombinacja zera lub większej liczby następujących wartości:
createAlphaChannel
Można użyć tylko wtedy, gdynBPP
ma wartość 32 ieCompression
ma wartośćBI_RGB
. Jeśli zostanie określony, utworzony obraz ma wartość alfa (przezroczystość) dla każdego piksela przechowywanego w 4 bajtach każdego piksela (nieużywane w obrazie 32-bitowym bez alfa). Ten kanał alfa jest automatycznie używany podczas wywoływania metodyCImage::AlphaBlend
.
Uwaga
W wywołaniach do CImage::Draw
programu obrazy z kanałem alfa są automatycznie mieszane alfa do miejsca docelowego.
Wartość zwracana
Bezzerowe, jeśli się powiedzie; w przeciwnym razie 0.
CImage::CreateEx
Tworzy mapę bitową CImage
i dołącza ją do wcześniej skonstruowanego CImage
obiektu.
BOOL CreateEx(
int nWidth,
int nHeight,
int nBPP,
DWORD eCompression,
const DWORD* pdwBitmasks = NULL,
DWORD dwFlags = 0) throw();
Parametry
nWidth
Szerokość mapy bitowej CImage
w pikselach.
nHeight
Wysokość mapy bitowej CImage
w pikselach. Jeśli nHeight
jest dodatni, mapa bitowa jest diB dolna, a jego pochodzenie jest lewym dolnym rogu. Jeśli nHeight
jest ujemna, mapa bitowa jest od góry do dołu DIB, a jego pochodzenie jest lewym górnym rogu.
nBPP
Liczba bitów na piksel w mapie bitowej. Zazwyczaj 4, 8, 16, 24 lub 32. Może być 1 dla monochromatycznych map bitowych lub masek.
eCompression
Określa typ kompresji skompresowanej mapy bitowej dolnej (nie można skompresować dib od góry do dołu). Może być jedną z następujących wartości:
BI_RGB
Format jest nieskompresowany. Określenie tej wartości podczas wywoływaniaCImage::CreateEx
jest równoważne wywołaniu metodyCImage::Create
.BI_BITFIELDS
Format jest nieskompresowany, a tabela kolorów składa się z trzechDWORD
masek kolorów, które określają odpowiednio czerwone, zielone i niebieskie składniki każdego piksela. Jest to prawidłowe w przypadku użycia z mapami bitowymi 16-i 32-bpp.
pdwBitfields
Używane tylko wtedy, gdy eCompression
jest ustawiona na BI_BITFIELDS
wartość , w przeciwnym razie musi to być NULL
. Wskaźnik do tablicy trzech DWORD
masek bitowych, określając, które bity każdego piksela są używane odpowiednio dla czerwonych, zielonych i niebieskich składników koloru. Aby uzyskać informacje na temat ograniczeń dotyczących pól bitowych, zobacz BITMAPINFOHEADER
w zestawie Windows SDK.
dwFlags
Określa, czy obiekt mapy bitowej ma kanał alfa. Może to być kombinacja zera lub większej liczby następujących wartości:
createAlphaChannel
Można użyć tylko wtedy, gdynBPP
ma wartość 32 ieCompression
ma wartośćBI_RGB
. Jeśli zostanie określony, utworzony obraz ma wartość alfa (przezroczystość) dla każdego piksela przechowywanego w 4 bajtach każdego piksela (nieużywane w obrazie 32-bitowym bez alfa). Ten kanał alfa jest automatycznie używany podczas wywoływania metodyCImage::AlphaBlend
.Uwaga
W wywołaniach do
CImage::Draw
programu obrazy z kanałem alfa są automatycznie mieszane alfa do miejsca docelowego.
Wartość zwracana
TRUE
w przypadku powodzenia. W przeciwnym razie FALSE
.
Przykład
Poniższy przykład tworzy 100 x 100 pikseli mapy bitowej, używając 16 bitów do kodowania każdego piksela. W danym 16-bitowym pikselu bity 0-3 koduje czerwony składnik, bity 4-7 koduje zielony i bity 8-11 koduje niebieski. Pozostałe 4 bity są nieużywane.
DWORD adwBitmasks[3] = { 0x0000000f, 0x000000f0, 0x00000f00 };
m_myImage.CreateEx(100, 100, 16, BI_BITFIELDS, adwBitmasks, 0);
CImage::Destroy
Odłącza mapę bitową od CImage
obiektu i niszczy mapę bitową.
void Destroy() throw();
CImage::Detach
Odłącza mapę bitową CImage
od obiektu.
HBITMAP Detach() throw();
Wartość zwracana
Uchwyt do mapy bitowej odłączony lub NULL
jeśli mapa bitowa nie jest dołączona.
CImage::Draw
Kopiuje mapę bitową z kontekstu urządzenia źródłowego do bieżącego kontekstu urządzenia.
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
Dojście do kontekstu urządzenia docelowego.
xDest
Współrzędna x w jednostkach logicznych lewego górnego rogu prostokąta docelowego.
yDest
Współrzędna y w jednostkach logicznych lewego górnego rogu prostokąta docelowego.
nDestWidth
Szerokość w jednostkach logicznych prostokąta docelowego.
nDestHeight
Wysokość w jednostkach logicznych prostokąta docelowego.
xSrc
Współrzędna x w jednostkach logicznych lewego górnego rogu prostokąta źródłowego.
ySrc
Współrzędna y w jednostkach logicznych lewego górnego rogu prostokąta źródłowego.
nSrcWidth
Szerokość w jednostkach logicznych prostokąta źródłowego.
nSrcHeight
Wysokość w jednostkach logicznych prostokąta źródłowego.
rectDest
Odwołanie do RECT
struktury identyfikujące miejsce docelowe.
rectSrc
Odwołanie do RECT
struktury identyfikujące źródło.
pointDest
Odwołanie do POINT
struktury identyfikującej lewy górny róg prostokąta docelowego w jednostkach logicznych.
Wartość zwracana
Bezzerowe, jeśli się powiedzie; w przeciwnym razie 0.
Uwagi
Draw
Wykonuje tę samą operację co StretchBlt
, chyba że obraz zawiera przezroczysty kolor lub kanał alfa. W takim przypadku Draw
wykonuje tę samą operację co wymagana TransparentBlt
lub AlphaBlend
wymagana.
W przypadku wersji Draw
, które nie określają prostokąta źródłowego, cały obraz źródłowy jest domyślny. W przypadku wersji Draw
, która nie określa rozmiaru prostokąta docelowego, rozmiar obrazu źródłowego jest domyślny i nie ma rozciągnięcia ani zmniejszania.
CImage::GetBits
Pobiera wskaźnik do rzeczywistych wartości bitowych danego piksela w mapie bitowej.
void* GetBits() throw();
Wartość zwracana
Wskaźnik do buforu mapy bitowej. Jeśli mapa bitowa jest dib w dolnej części, wskaźnik wskazuje w pobliżu końca buforu. Jeśli mapa bitowa jest od góry do dołu DIB, wskaźnik wskazuje pierwszy bajt buforu.
Uwagi
Za pomocą tego wskaźnika wraz z wartością zwróconą przez GetPitch
element można zlokalizować i zmienić poszczególne piksele na obrazie.
Uwaga
Ta metoda obsługuje tylko mapy bitowe sekcji DIB; w związku z tym uzyskujesz dostęp do pikseli CImage
obiektu w taki sam sposób, jak piksele sekcji DIB. Zwrócony wskaźnik wskazuje piksel w lokalizacji (0, 0).
CImage::GetBPP
Pobiera wartość bitów na piksel.
int GetBPP() const throw();
Wartość zwracana
Liczba bitów na piksel.
Uwagi
Ta wartość określa liczbę bitów definiujących każdy piksel i maksymalną liczbę kolorów w mapie bitowej.
Bity na piksel to zwykle 1, 4, 8, 16, 24 lub 32. biBitCount
Aby uzyskać więcej informacji na temat tej wartości, zobacz element członkowski zestawu BITMAPINFOHEADER
Windows SDK.
CImage::GetColorTable
Pobiera czerwone, zielone, niebieskie (RGB) wartości kolorów z zakresu wpisów w palecie sekcji DIB.
void GetColorTable(
UINT iFirstColor,
UINT nColors,
RGBQUAD* prgbColors) const throw();
Parametry
iFirstColor
Indeks tabeli kolorów pierwszego wpisu do pobrania.
nColors
Liczba wpisów tabeli kolorów do pobrania.
prgbColors
Wskaźnik do tablicy RGBQUAD
struktur w celu pobrania wpisów tabeli kolorów.
CImage::GetDC
Pobiera kontekst urządzenia, który aktualnie ma wybrany obraz.
HDC GetDC() const throw();
Wartość zwracana
Uchwyt do kontekstu urządzenia.
Uwagi
Dla każdego wywołania metody GetDC
należy wykonać kolejne wywołanie metody ReleaseDC
.
CImage::GetExporterFilterString
Znajduje formaty obrazów dostępne do zapisywania obrazów.
static HRESULT GetExporterFilterString(
CSimpleString& strExporters,
CSimpleArray<GUID>& aguidFileTypes,
LPCTSTR pszAllFilesDescription = NULL,
DWORD dwExclude = excludeDefaultSave,
TCHAR chSeparator = _T('|'));
Parametry
strExporters
Odwołanie do CSimpleString
obiektu. Zobacz uwagi uzyskać więcej informacji.
aguidFileTypes
Tablica identyfikatorów GUID z każdym elementem odpowiadającym jednemu z typów plików w ciągu. W poniższym aguidFileTypes[0]
przykładzie pszAllFilesDescription
znajduje GUID_NULL
się wartość , a pozostałe wartości tablicy to formaty plików obrazów obsługiwane przez bieżący system operacyjny.
Uwaga
Aby uzyskać pełną listę stałych, zobacz Stałe formatu pliku obrazów w zestawie Windows SDK.
pszAllFilesDescription
Jeśli ten parametr nie NULL
jest , ciąg filtru będzie miał jeden dodatkowy filtr na początku listy. Ten filtr będzie miał bieżącą wartość pszAllFilesDescription
opisu i akceptuje pliki dowolnego rozszerzenia obsługiwanego przez dowolnego innego eksportera na liście.
Na przykład:
//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
Zestaw flag bitowych określający typy plików do wykluczenia z listy. Flagi dozwolone to:
excludeGIF
= 0x01 wyklucza pliki GIF.excludeBMP
= 0x02 wyklucza pliki BMP (Mapa bitowa systemu Windows).excludeEMF
= 0x04 wyklucza pliki EMF (rozszerzony metaplik).excludeWMF
= 0x08 wyklucza pliki WMF (Metafile systemu Windows).excludeJPEG
= 0x10 wyklucza pliki JPEG.excludePNG
= 0x20 wyklucza pliki PNG.excludeTIFF
= 0x40 wyklucza pliki TIFF.excludeIcon
= 0x80 wyklucza pliki ICO (Ikona systemu Windows).excludeOther
= 0x80000000 Wyklucza inny typ pliku, którego nie ma na powyższej liście.excludeDefaultLoad
= 0 W przypadku ładowania wszystkie typy plików są domyślnie dołączaneexcludeDefaultSave
=excludeIcon | excludeEMF | excludeWMF
Do zapisywania te pliki są domyślnie wykluczone, ponieważ zwykle mają specjalne wymagania.
chSeparator
Separator używany między formatami obrazów. Zobacz uwagi uzyskać więcej informacji.
Wartość zwracana
HRESULT
Standardowy .
Uwagi
Wynikowy ciąg formatu można przekazać do obiektu MFC CFileDialog
, aby uwidocznić rozszerzenia plików dostępnych formatów obrazów w oknie dialogowym Zapisywanie pliku jako.
Parametr strExporter
ma format:
file description 0|*.ext0|file description 1|*.ext1|...file description N|*.extN||
gdzie |
jest znakiem separatora określonym przez chSeparator
. Na przykład:
"Bitmap format|*.bmp|JPEG format|*.jpg|GIF format|*.gif|PNG format|*.png||"
Użyj separatora |
domyślnego, jeśli przekażesz ten ciąg do obiektu MFC CFileDialog
. Użyj separatora '\0'
wartości null, jeśli przekażesz ten ciąg do wspólnego okna dialogowego Zapisywanie pliku.
CImage::GetHeight
Pobiera wysokość obrazu w pikselach.
int GetHeight() const throw();
Wartość zwracana
Wysokość obrazu w pikselach.
CImage::GetImporterFilterString
Znajduje formaty obrazów dostępne do ładowania obrazów.
static HRESULT GetImporterFilterString(
CSimpleString& strImporters,
CSimpleArray<GUID>& aguidFileTypes,
LPCTSTR pszAllFilesDescription = NULL,
DWORD dwExclude = excludeDefaultLoad,
TCHAR chSeparator = _T('|'));
Parametry
strImporters
Odwołanie do CSimpleString
obiektu. Zobacz uwagi uzyskać więcej informacji.
aguidFileTypes
Tablica identyfikatorów GUID z każdym elementem odpowiadającym jednemu z typów plików w ciągu. W poniższym przykładzie pszAllFilesDescription
*aguidFileTypes[0]*
jest GUID_NULL
z pozostałymi wartościami tablicy są formaty plików obrazów obsługiwane przez bieżący system operacyjny.
Uwaga
Aby uzyskać pełną listę stałych, zobacz Stałe formatu pliku obrazów w zestawie Windows SDK.
pszAllFilesDescription
Jeśli ten parametr nie NULL
jest , ciąg filtru będzie miał jeden dodatkowy filtr na początku listy. Ten filtr będzie miał bieżącą wartość pszAllFilesDescription
opisu i akceptuje pliki dowolnego rozszerzenia obsługiwanego przez dowolnego innego eksportera na liście.
Na przykład:
//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
Zestaw flag bitowych określający typy plików do wykluczenia z listy. Flagi dozwolone to:
excludeGIF
= 0x01 wyklucza pliki GIF.excludeBMP
= 0x02 wyklucza pliki BMP (Mapa bitowa systemu Windows).excludeEMF
= 0x04 wyklucza pliki EMF (rozszerzony metaplik).excludeWMF
= 0x08 wyklucza pliki WMF (Metafile systemu Windows).excludeJPEG
= 0x10 wyklucza pliki JPEG.excludePNG
= 0x20 wyklucza pliki PNG.excludeTIFF
= 0x40 wyklucza pliki TIFF.excludeIcon
= 0x80 wyklucza pliki ICO (Ikona systemu Windows).excludeOther
= 0x80000000 Wyklucza inny typ pliku, którego nie ma na powyższej liście.excludeDefaultLoad
= 0 W przypadku ładowania wszystkie typy plików są domyślnie dołączaneexcludeDefaultSave
=excludeIcon | excludeEMF | excludeWMF
Do zapisywania te pliki są domyślnie wykluczone, ponieważ zwykle mają specjalne wymagania.
chSeparator
Separator używany między formatami obrazów. Zobacz uwagi uzyskać więcej informacji.
Uwagi
Wynikowy ciąg formatu można przekazać do obiektu MFC CFileDialog
, aby uwidocznić rozszerzenia plików dostępnych formatów obrazów w oknie dialogowym Otwieranie pliku.
Parametr strImporter
ma format:
"opis pliku 0|. ext0|file description 1|. ext1|... opis pliku N|*.extN||
gdzie |
jest znakiem separatora określonym przez chSeparator
. Na przykład:
"Bitmap format|*.bmp|JPEG format|*.jpg|GIF format|*.gif|PNG format|*.png||"
Użyj separatora |
domyślnego, jeśli przekażesz ten ciąg do obiektu MFC CFileDialog
. Użyj separatora '\0'
wartości null, jeśli przekażesz ten ciąg do wspólnego okna dialogowego Otwieranie pliku.
CImage::GetMaxColorTableEntries
Pobiera maksymalną liczbę wpisów w tabeli kolorów.
int GetMaxColorTableEntries() const throw();
Wartość zwracana
Liczba wpisów w tabeli kolorów.
Uwagi
Ta metoda obsługuje tylko mapy bitowe sekcji DIB.
CImage::GetPitch
Pobiera pitch obrazu.
int GetPitch() const throw();
Wartość zwracana
Wysokość obrazu. Jeśli wartość zwracana jest ujemna, mapa bitowa jest dolną górą DIB, a jej pochodzenie to lewy dolny róg. Jeśli wartość zwracana jest dodatnia, mapa bitowa jest od góry do dołu DIB, a jej początek jest lewym górnym róg.
Uwagi
Skok jest odległością w bajtach między dwoma adresami pamięci reprezentującymi początek jednej linii mapy bitowej i początek następnej linii mapy bitowej. Ponieważ skok jest mierzony w bajtach, skok obrazu pomaga określić format pikseli. Wysokość może również obejmować dodatkową pamięć zarezerwowaną dla mapy bitowej.
Użyj polecenia GetPitch
, GetBits
aby znaleźć pojedyncze piksele obrazu.
Uwaga
Ta metoda obsługuje tylko mapy bitowe sekcji DIB.
CImage::GetPixel
Pobiera kolor piksela w lokalizacji określonej przez x i y.
COLORREF GetPixel(int x, int y) const throw();
Parametry
x
Współrzędna x piksela.
y
Współrzędna y piksela.
Wartość zwracana
Czerwona, zielona, niebieska (RGB) wartość piksela. Jeśli piksel znajduje się poza bieżącym regionem wycinki, zwracana wartość to CLR_INVALID
.
CImage::GetPixelAddress
Pobiera dokładny adres piksela.
void* GetPixelAddress(int x, int y) throw();
Parametry
x
Współrzędna x piksela.
y
Współrzędna y piksela.
Uwagi
Adres jest określany zgodnie ze współrzędnymi piksela, skokiem mapy bitowej i bitami na piksel.
W przypadku formatów, które mają mniej niż 8 bitów na piksel, ta metoda zwraca adres bajtu zawierającego piksel. Jeśli na przykład format obrazu ma 4 bity na piksel, GetPixelAddress
zwraca adres pierwszego piksela w bajtach i musisz obliczyć dla 2 pikseli na bajt.
Uwaga
Ta metoda obsługuje tylko mapy bitowe sekcji DIB.
CImage::GetTransparentColor
Pobiera indeksowaną lokalizację przezroczystego koloru na palecie kolorów.
LONG GetTransparentColor() const throw();
Wartość zwracana
Indeks przezroczystego koloru.
CImage::GetWidth
Pobiera szerokość obrazu w pikselach.
int GetWidth() const throw();
Wartość zwracana
Szerokość mapy bitowej w pikselach.
CImage::IsDIBSection
Określa, czy dołączona mapa bitowa jest sekcją DIB.
bool IsDIBSection() const throw();
Wartość zwracana
TRUE
jeśli dołączona mapa bitowa jest sekcją DIB. W przeciwnym razie FALSE
.
Uwagi
Jeśli mapa bitowa nie jest sekcją DIB, nie można użyć następujących CImage
metod, które obsługują tylko mapy bitowe sekcji DIB:
CImage::IsIndexed
Określa, czy piksele mapy bitowej są mapowane na paletę kolorów.
bool IsIndexed() const throw();
Wartość zwracana
TRUE
w przypadku indeksowania; w przeciwnym razie FALSE
.
Uwagi
Ta metoda zwraca TRUE
tylko wtedy, gdy mapa bitowa jest 8-bitowa (256 kolorów) lub mniejsza.
Uwaga
Ta metoda obsługuje tylko mapy bitowe sekcji DIB.
CImage::IsNull
Określa, czy mapa bitowa jest aktualnie ładowana.
bool IsNull() const throw();
Uwagi
Ta metoda zwraca TRUE
wartość , jeśli mapa bitowa nie jest obecnie ładowana; w przeciwnym razie FALSE
.
CImage::IsTransparencySupported
Wskazuje, czy aplikacja obsługuje przezroczyste mapy bitowe.
static BOOL IsTransparencySupported() throw();
Wartość zwracana
Nonzero, jeśli bieżąca platforma obsługuje przezroczystość. W przeciwnym razie 0.
Uwagi
Jeśli wartość zwracana jest niezerowa, a przezroczystość jest obsługiwana, wywołanie metody , TransparentBlt
lub Draw
będzie obsługiwać AlphaBlend
przezroczyste kolory.
CImage::Load
Ładuje obraz.
HRESULT Load(LPCTSTR pszFileName) throw();
HRESULT Load(IStream* pStream) throw();
Parametry
pszFileName
Wskaźnik do ciągu zawierającego nazwę pliku obrazu do załadowania.
pStream
Wskaźnik do strumienia zawierającego nazwę pliku obrazu do załadowania.
Wartość zwracana
HRESULT
Standardowy .
Uwagi
Ładuje obraz określony przez pszFileName
lub pStream
.
Prawidłowe typy obrazów to BMP, GIF, JPEG, PNG i TIFF.
CImage::LoadFromResource
Ładuje obraz z BITMAP
zasobu.
void LoadFromResource(
HINSTANCE hInstance,
LPCTSTR pszResourceName) throw();
void LoadFromResource(
HINSTANCE hInstance,
UINT nIDResource) throw();
Parametry
hInstance
Obsługa wystąpienia modułu zawierającego obraz do załadowania.
pszResourceName
Wskaźnik do ciągu zawierającego nazwę zasobu zawierającego obraz do załadowania.
nIDResource
Identyfikator zasobu do załadowania.
Uwagi
Zasób musi mieć typ BITMAP
.
CImage::MaskBlt
Łączy dane kolorów dla źródłowych i docelowych map bitowych przy użyciu określonej maski i operacji rastrowania.
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
Dojście do modułu, którego plik wykonywalny zawiera zasób.
xDest
Współrzędna x w jednostkach logicznych lewego górnego rogu prostokąta docelowego.
yDest
Współrzędna y w jednostkach logicznych lewego górnego rogu prostokąta docelowego.
nDestWidth
Szerokość w jednostkach logicznych prostokąta docelowego i źródłowej mapy bitowej.
nDestHeight
Wysokość w jednostkach logicznych prostokąta docelowego i źródłowej mapy bitowej.
xSrc
Logiczna współrzędna x lewego górnego rogu źródłowej mapy bitowej.
ySrc
Logiczna współrzędna y lewego górnego rogu źródłowej mapy bitowej.
hbmMask
Dojdź do mapy bitowej monochromatycznej połączonej z mapą bitową koloru w kontekście urządzenia źródłowego.
xMask
Przesunięcie pikseli poziomego dla mapy bitowej maski określonej przez hbmMask
parametr .
yMask
Przesunięcie pikseli w pionie dla mapy bitowej maski określonej przez hbmMask
parametr .
dwROP
Określa kody operacji rastera pierwszego planu i tła, których używa metoda do kontrolowania kombinacji danych źródłowych i docelowych. Kod operacji rastera tła jest przechowywany w bajtach o wysokiej kolejności słowa o wysokiej kolejności tej wartości; kod operacji raster pierwszego planu jest przechowywany w bajtach o niskiej kolejności słowa o wysokiej kolejności tej wartości; słowo o niskiej kolejności tej wartości jest ignorowane i powinno mieć wartość zero. Aby zapoznać się z omówieniem pierwszego planu i tła w kontekście tej metody, zobacz MaskBlt
w zestawie SDK systemu Windows. Aby uzyskać listę typowych kodów operacji rasterowych, zobacz BitBlt
w zestawie Windows SDK.
rectDest
Odwołanie do RECT
struktury identyfikujące miejsce docelowe.
pointSrc
Struktura POINT
wskazująca lewy górny róg prostokąta źródłowego.
pointMask
Struktura POINT
wskazująca lewy górny róg mapy bitowej maski.
pointDest
Odwołanie do POINT
struktury identyfikującej lewy górny róg prostokąta docelowego w jednostkach logicznych.
Wartość zwracana
Jeśli operacja niezerowa zakończyła się powodzeniem, w przeciwnym razie 0.
Uwagi
Ta metoda dotyczy tylko systemu Windows NT w wersji 4.0 lub nowszej.
CImage::operator HBITMAP
Użyj tego operatora, aby pobrać dołączony uchwyt GDI systemu CImage
Windows obiektu. Ten operator jest operatorem rzutowania, który obsługuje bezpośrednie użycie HBITMAP
obiektu.
CImage::PlgBlt
Wykonuje transfer bitowy z prostokąta w kontekście urządzenia źródłowego do równoległegoogramu w kontekście urządzenia docelowego.
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
Dojście do kontekstu urządzenia docelowego.
pPoints
Wskaźnik do tablicy trzech punktów w przestrzeni logicznej, które identyfikują trzy rogi docelowego równoległegoogramu. Lewy górny róg prostokąta źródłowego jest mapowany na pierwszy punkt w tej tablicy, prawy górny róg do drugiego punktu w tej tablicy, a dolny lewy róg do trzeciego punktu. Prawy dolny róg prostokąta źródłowego jest mapowany na niejawny czwarty punkt w równoległości.
hbmMask
Uchwyt do opcjonalnej mapy bitowej monochromatycznej używanej do maskowania kolorów prostokąta źródłowego.
xSrc
Współrzędna x w jednostkach logicznych lewego górnego rogu prostokąta źródłowego.
ySrc
Współrzędna y w jednostkach logicznych lewego górnego rogu prostokąta źródłowego.
nSrcWidth
Szerokość w jednostkach logicznych prostokąta źródłowego.
nSrcHeight
Wysokość w jednostkach logicznych prostokąta źródłowego.
xMask
Współrzędna x lewego górnego rogu mapy bitowej monochromatycznej.
yMask
Współrzędna y lewego górnego rogu monochromatycznej mapy bitowej.
rectSrc
Odwołanie do RECT
struktury określającej współrzędne prostokąta źródłowego.
pointMask
Struktura POINT
wskazująca lewy górny róg mapy bitowej maski.
Wartość zwracana
Jeśli operacja niezerowa zakończyła się powodzeniem, w przeciwnym razie 0.
Uwagi
Jeśli hbmMask
zostanie zidentyfikowana prawidłowa mapa bitowa monochromatyczna, PlgBit
użyje tej mapy bitowej do maskowania bitów danych koloru z prostokąta źródłowego.
Ta metoda dotyczy tylko systemu Windows NT w wersji 4.0 lub nowszej. Aby uzyskać bardziej szczegółowe informacje, zobacz PlgBlt
w zestawie Windows SDK.
CImage::ReleaseDC
Zwalnia kontekst urządzenia.
void ReleaseDC() const throw();
Uwagi
Ponieważ jednocześnie można wybrać tylko jedną mapę bitową w kontekście urządzenia, należy wywołać ReleaseDC
każde wywołanie metody GetDC
.
CImage::ReleaseGDIPlus
Zwalnia zasoby używane przez interfejs GDI+.
void ReleaseGDIPlus() throw();
Uwagi
Ta metoda musi być wywoływana w celu zwolnienia zasobów przydzielonych przez obiekt globalny CImage
. Zobacz: CImage::CImage
.
CImage::Save
Zapisuje obraz na określonym strumieniu lub pliku na dysku.
HRESULT Save(
IStream* pStream,
REFGUID guidFileType) const throw();
HRESULT Save(
LPCTSTR pszFileName,
REFGUID guidFileType = GUID_NULL) const throw();
Parametry
pStream
Wskaźnik do obiektu COM IStream zawierającego dane obrazu pliku.
pszFileName
Wskaźnik do nazwy pliku obrazu.
guidFileType
Typ pliku do zapisania obrazu jako. Może być jednym z następujących elementów:
ImageFormatBMP
Nieskompresowany obraz mapy bitowej.ImageFormatPNG
Skompresowany obraz z grafiką przenośną sieciową (PNG).ImageFormatJPEG
Skompresowany obraz JPEG.ImageFormatGIF
Skompresowany obraz GIF.
Uwaga
Aby uzyskać pełną listę stałych, zobacz Stałe formatu pliku obrazów w zestawie Windows SDK.
Wartość zwracana
HRESULT
Standardowy .
Uwagi
Wywołaj tę funkcję, aby zapisać obraz przy użyciu określonej nazwy i typu. guidFileType
Jeśli parametr nie zostanie dołączony, rozszerzenie pliku nazwy pliku zostanie użyte do określenia formatu obrazu. Jeśli rozszerzenie nie zostanie podane, obraz zostanie zapisany w formacie BMP.
CImage::SetColorTable
Ustawia czerwone, zielone, niebieskie (RGB) wartości kolorów dla zakresu wpisów w palecie sekcji DIB.
void SetColorTable(
UINT iFirstColor,
UINT nColors,
const RGBQUAD* prgbColors) throw();
Parametry
iFirstColor
Indeks tabeli kolorów pierwszego wpisu do ustawienia.
nColors
Liczba wpisów tabeli kolorów do ustawienia.
prgbColors
Wskaźnik do tablicy RGBQUAD
struktur w celu ustawienia wpisów tabeli kolorów.
Uwagi
Ta metoda obsługuje tylko mapy bitowe sekcji DIB.
CImage::SetPixel
Ustawia kolor piksela w danej lokalizacji na mapie bitowej.
void SetPixel(int x, int y, COLORREF color) throw();
Parametry
x
Położenie w poziomie piksela do ustawienia.
y
Pionowa lokalizacja piksela do ustawienia.
color
Kolor, na który ustawiono piksel.
Uwagi
Ta metoda kończy się niepowodzeniem, jeśli współrzędne pikseli znajdują się poza wybranym regionem wycinki.
CImage::SetPixelIndexed
Ustawia kolor pikseli na kolor znajdujący się w iIndex
palecie kolorów.
void SetPixelIndexed(int x, int y, int iIndex) throw();
Parametry
x
Położenie w poziomie piksela do ustawienia.
y
Pionowa lokalizacja piksela do ustawienia.
iIndex
Indeks koloru w palecie kolorów.
CImage::SetPixelRGB
Ustawia piksel w lokalizacjach określonych przez x
i y
na kolory wskazane przez r
, g
i b
, na obrazie czerwonym, zielonym, niebieskim (RGB).
void SetPixelRGB(
int x,
int y,
BYTE r,
BYTE g,
BYTE b) throw();
Parametry
x
Położenie w poziomie piksela do ustawienia.
y
Pionowa lokalizacja piksela do ustawienia.
r
Intensywność koloru czerwonego.
g
Intensywność koloru zielonego.
b
Intensywność koloru niebieskiego.
Uwagi
Czerwone, zielone i niebieskie parametry są reprezentowane przez liczbę z zakresu od 0 do 255. Jeśli ustawisz wszystkie trzy parametry na zero, połączony kolor wynikowy będzie. Jeśli ustawisz wszystkie trzy parametry na 255, połączony kolor wynikowy będzie biały.
CImage::SetTransparentColor
Ustawia kolor w danej lokalizacji indeksowanej jako przezroczysty.
LONG SetTransparentColor(LONG iTransparentColor) throw();
Parametry
iTransparentColor
Indeks w palecie kolorów koloru ustawiony na przezroczysty. Jeśli wartość -1, żaden kolor nie jest ustawiony na przezroczysty.
Wartość zwracana
Indeks koloru wcześniej ustawiony jako przezroczysty.
CImage::StretchBlt
Kopiuje mapę bitową z kontekstu urządzenia źródłowego do bieżącego kontekstu urządzenia.
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
Dojście do kontekstu urządzenia docelowego.
xDest
Współrzędna x w jednostkach logicznych lewego górnego rogu prostokąta docelowego.
yDest
Współrzędna y w jednostkach logicznych lewego górnego rogu prostokąta docelowego.
nDestWidth
Szerokość w jednostkach logicznych prostokąta docelowego.
nDestHeight
Wysokość w jednostkach logicznych prostokąta docelowego.
dwROP
Operację rastrową do wykonania. Kody operacji raster-definiują dokładnie sposób łączenia bitów źródła, miejsca docelowego i wzorca (zgodnie z definicją aktualnie wybranego pędzla) w celu utworzenia miejsca docelowego. Zobacz BitBlt
w zestawie Windows SDK, aby uzyskać listę innych kodów operacji rasterowych i ich opisów.
rectDest
Odwołanie do RECT
struktury identyfikujące miejsce docelowe.
xSrc
Współrzędna x w jednostkach logicznych lewego górnego rogu prostokąta źródłowego.
ySrc
Współrzędna y w jednostkach logicznych lewego górnego rogu prostokąta źródłowego.
nSrcWidth
Szerokość w jednostkach logicznych prostokąta źródłowego.
nSrcHeight
Wysokość w jednostkach logicznych prostokąta źródłowego.
rectSrc
Odwołanie do RECT
struktury identyfikujące źródło.
Wartość zwracana
Jeśli operacja niezerowa zakończyła się powodzeniem, w przeciwnym razie 0.
Uwagi
Aby uzyskać więcej informacji, zobacz StretchBlt
w zestawie Windows SDK.
CImage::TransparentBlt
Kopiuje mapę bitową z kontekstu urządzenia źródłowego do bieżącego kontekstu urządzenia.
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
Dojście do kontekstu urządzenia docelowego.
xDest
Współrzędna x w jednostkach logicznych lewego górnego rogu prostokąta docelowego.
yDest
Współrzędna y w jednostkach logicznych lewego górnego rogu prostokąta docelowego.
nDestWidth
Szerokość w jednostkach logicznych prostokąta docelowego.
nDestHeight
Wysokość w jednostkach logicznych prostokąta docelowego.
crTransparent
Kolor w źródłowej mapie bitowej do traktowania jako przezroczysty. Domyślnie , wskazując, CLR_INVALID
że kolor aktualnie ustawiony jako przezroczysty kolor obrazu powinien być używany.
rectDest
Odwołanie do RECT
struktury identyfikujące miejsce docelowe.
xSrc
Współrzędna x w jednostkach logicznych lewego górnego rogu prostokąta źródłowego.
ySrc
Współrzędna y w jednostkach logicznych lewego górnego rogu prostokąta źródłowego.
nSrcWidth
Szerokość w jednostkach logicznych prostokąta źródłowego.
nSrcHeight
Wysokość w jednostkach logicznych prostokąta źródłowego.
rectSrc
Odwołanie do RECT
struktury identyfikujące źródło.
Wartość zwracana
TRUE
jeśli operacja powiedzie się, w przeciwnym razie FALSE
.
Uwagi
TransparentBlt
Jest obsługiwany w przypadku źródłowych map bitowych 4 bitów na piksel i 8 bitów na piksel. Służy CImage::AlphaBlend
do określania 32-bitowych map bitowych na piksel z przezroczystością.
Przykład
// 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;
}
Zobacz też
MMXSwarm
Próbka
SimpleImage
Próbka
Mapy bitowe niezależne od urządzenia
CreateDIBSection
Składniki ATL COM pulpitu
Mapy bitowe niezależne od urządzenia