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

Członkowie

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::GetDCpolecenia .
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 Attachmetody , 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 DllMainklasy .

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 CDCobiekcie . 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 HDCobiekcie . 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ąHBITMAPCImage do elementu i użyj CBitmap::FromHandlezwró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 CImageprogramu 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 CImagenależy zdefiniować CString element przed dołączeniem atlimage.helementu . 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.hatlimpl.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łówka: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. Powoduje CImage::GetBits to zwrócenie wskaźnika w pobliżu końca buforu mapy bitowej i CImage::GetPitch zwrócenie liczby ujemnej.

  • DIBOR_TOPDOWN Linie mapy bitowej znajdują się w górnej kolejności do dołu. Powoduje CImage::GetBits to zwrócenie wskaźnika do pierwszego bajtu buforu mapy bitowej i CImage::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, LoadFromResourcelub 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, gdy nBPP ma wartość 32 i eCompression 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 metody CImage::AlphaBlend.

Uwaga

W wywołaniach do CImage::Drawprogramu 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ływania CImage::CreateEx jest równoważne wywołaniu metody CImage::Create.

  • BI_BITFIELDS Format jest nieskompresowany, a tabela kolorów składa się z trzech DWORD 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_BITFIELDSwartość , 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, gdy nBPP ma wartość 32 i eCompression 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 metody CImage::AlphaBlend.

    Uwaga

    W wywołaniach do CImage::Drawprogramu 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 GetPitchelement 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 GetDCnależ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 NULLjest , 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.

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łączane

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

HRESULTStandardowy .

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. 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 NULLjest , 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.

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łączane

  • excludeDefaultSave = 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. 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 , TransparentBltlub Draw będzie obsługiwać AlphaBlendprzezroczyste 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

HRESULTStandardowy .

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

HRESULTStandardowy .

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, gi 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 czarny. 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 Przykładowe
SimpleImage Przykładowe
Mapy bitowe niezależne od urządzenia
CreateDIBSection
Składniki ATL COM pulpitu
Mapy bitowe niezależne od urządzenia