Freigeben über


CImage-Klasse

CImage bietet erweiterte Bitmapunterstützung, einschließlich der Möglichkeit, Bilder in JPEG-, GIF-, BMP- und PNG-Formaten (Portable Network Graphics) zu laden und zu speichern.

Wichtig

Diese Klasse und ihre Member können nicht in Anwendungen verwendet werden, die in der Windows-Runtime ausgeführt werden.

Syntax

class CImage

Member

Öffentliche Konstruktoren

Name Beschreibung
CImage::CImage Der Konstruktor.

Öffentliche Methoden

Name Beschreibung
CImage::AlphaBlend Zeigt Bitmaps mit transparenten oder halbtransparenten Pixeln an.
CImage::Attach Fügt ein Objekt HBITMAP an CImage . Kann mit Bitmaps für Nicht-DIB-Abschnitte oder DIB-Abschnittsbitmaps verwendet werden.
CImage::BitBlt Kopiert eine Bitmap aus dem Quellgerätekontext in diesen aktuellen Gerätekontext.
CImage::Create Erstellt eine DIB-Abschnittsbitmap und fügt sie an das zuvor erstellte CImage Objekt an.
CImage::CreateEx Erstellt eine DIB-Abschnittsbitmap (mit zusätzlichen Parametern) und fügt sie an das zuvor erstellte CImage Objekt an.
CImage::Destroy Trennt die Bitmap vom CImage Objekt und zerstört die Bitmap.
CImage::Detach Trennt die Bitmap von einem CImage Objekt.
CImage::Draw Kopiert eine Bitmap aus einem Quellrechteck in ein Zielrechteck. Draw dehiert oder komprimiert die Bitmap so, dass sie den Abmessungen des Zielrechtecks entspricht, falls erforderlich, und behandelt Alphamischungen und transparente Farben.
CImage::GetBits Ruft einen Zeiger auf die tatsächlichen Pixelwerte der Bitmap ab.
CImage::GetBPP Ruft die Bits pro Pixel ab.
CImage::GetColorTable Ruft rote, grüne, blaue (RGB)-Farbwerte aus einem Bereich von Einträgen in der Farbtabelle ab.
CImage::GetDC Ruft den Gerätekontext ab, in den die aktuelle Bitmap ausgewählt ist.
CImage::GetExporterFilterString Sucht die verfügbaren Bildformate und deren Beschreibungen.
CImage::GetHeight Ruft die Höhe des aktuellen Bilds in Pixeln ab.
CImage::GetImporterFilterString Sucht die verfügbaren Bildformate und deren Beschreibungen.
CImage::GetMaxColorTableEntries Ruft die maximale Anzahl von Einträgen in der Farbtabelle ab.
CImage::GetPitch Ruft den Neigungswinkel des aktuellen Bilds in Bytes ab.
CImage::GetPixel Ruft die Farbe des durch x und y.
CImage::GetPixelAddress Ruft die Adresse eines bestimmten Pixels ab.
CImage::GetTransparentColor Ruft die Position der transparenten Farbe in der Farbtabelle ab.
CImage::GetWidth Ruft die Breite des aktuellen Bilds in Pixeln ab.
CImage::IsDIBSection Bestimmt, ob die angefügte Bitmap ein DIB-Abschnitt ist.
CImage::IsIndexed Gibt an, dass die Farben einer Bitmap einer indizierten Palette zugeordnet sind.
CImage::IsNull Gibt an, ob derzeit eine Quellbitmap geladen wird.
CImage::IsTransparencySupported Gibt an, ob die Anwendung transparente Bitmaps unterstützt.
CImage::Load Lädt ein Bild aus der angegebenen Datei.
CImage::LoadFromResource Lädt ein Bild aus der angegebenen Ressource.
CImage::MaskBlt Kombiniert die Farbdaten für die Quell- und Zielbitmaps mithilfe der angegebenen Maske und des Rastervorgangs.
CImage::PlgBlt Führt eine Bitblockübertragung von einem Rechteck in einem Quellgerätekontext in ein Parallelogramm in einem Zielgerätekontext aus.
CImage::ReleaseDC Gibt den Gerätekontext frei, mit dem abgerufen CImage::GetDCwurde.
CImage::ReleaseGDIPlus Veröffentlicht Ressourcen, die von GDI+ verwendet werden. Muss aufgerufen werden, um ressourcen freizugeben, die von einem globalen CImage Objekt erstellt werden.
CImage::Save Speichert ein Bild als angegebenen Typ. Save Bildoptionen können nicht angegeben werden.
CImage::SetColorTable Legt die Farbwerte rot, grün, blau RGB) in einem Bereich von Einträgen in der Farbtabelle des DIB-Abschnitts fest.
CImage::SetPixel Legt das Pixel an den angegebenen Koordinaten auf die angegebene Farbe fest.
CImage::SetPixelIndexed Legt das Pixel an den angegebenen Koordinaten auf die Farbe am angegebenen Index der Palette fest.
CImage::SetPixelRGB Legt das Pixel an den angegebenen Koordinaten auf den angegebenen roten, grünen, blauen (RGB)-Wert fest.
CImage::SetTransparentColor Legt den Index der Farbe fest, die als transparent behandelt werden soll. Nur eine Farbe in einer Palette kann transparent sein.
CImage::StretchBlt Kopiert eine Bitmap aus einem Quellrechteck in ein Zielrechteck, dehnt oder komprimiert die Bitmap, um die Abmessungen des Zielrechtecks bei Bedarf anzupassen.
CImage::TransparentBlt Kopiert eine Bitmap mit transparenter Farbe aus dem Quellgerätekontext in diesen aktuellen Gerätekontext.

Öffentliche Operatoren

Name Beschreibung
CImage::operator HBITMAP Gibt das dem Objekt angefügte CImage Windows-Handle zurück.

Hinweise

CImage verwendet Bitmaps, die entweder geräteunabhängige Bitmapabschnitte (DIB) sind oder nicht; Sie können jedoch nur DIB-Abschnitte verwenden Create oder CImage::Load verwenden. Sie können eine Nicht-DIB-Abschnittsbitmap mit Attacheinem CImage Objekt anfügen. Anschließend können Sie die folgenden CImage Methoden nicht verwenden, die nur DIB-Abschnittsbitmaps unterstützen:

Rufen Sie auf, um IsDibSectionzu ermitteln, ob eine angefügte Bitmap ein DIB-Abschnitt ist.

Hinweis

In Visual Studio .NET 2003 behält diese Klasse die Anzahl der CImage erstellten Objekte bei. Wenn die Anzahl zu 0 wechselt, wird die Funktion GdiplusShutdown automatisch aufgerufen, um ressourcen freizugeben, die von GDI+ verwendet werden. Dadurch wird sichergestellt, dass alle CImage Objekte, die direkt oder indirekt durch DLLs erstellt wurden, immer ordnungsgemäß zerstört werden und nicht GdiplusShutdown aufgerufen DllMainwerden.

Hinweis

Die Verwendung globaler CImage Objekte in einer DLL wird nicht empfohlen. Wenn Sie ein globales CImage Objekt in einer DLL verwenden müssen, rufen Sie explizit CImage::ReleaseGDIPlus ressourcen frei, die von GDI+ verwendet werden.

CImage kann nicht in einem neuen CDCausgewählt werden. CImage erstellt einen eigenen HDC für das Bild. Da ein Element HBITMAP nur einzeln ausgewählt HDC werden kann, kann das HBITMAPCImage zugeordnete Element nicht in eine andere HDCausgewählt werden. Wenn Sie einen CDC, rufen Sie die HDC von der CImage und geben Sie es .CDC::FromHandle

Beispiele

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

Wenn Sie in einem MFC-Projekt verwenden CImage , beachten Sie, welche Memberfunktionen in Ihrem Projekt einen Zeiger auf ein CBitmap Objekt erwarten. Wenn Sie eine solche Funktion verwenden CImage möchten, z CMenu::AppendMenu. B. verwenden Sie CBitmap::FromHandlesie, übergeben Sie CImageHBITMAPsie, und verwenden Sie die zurückgegebene CBitmap*.

void CMyDlg::OnRButtonDown(UINT nFlags, CPoint point)
{
    UNREFERENCED_PARAMETER(nFlags);

    CBitmap* pBitmap = CBitmap::FromHandle(m_myImage);
    m_pmenuPop->AppendMenu(0, ID_BMPCOMMAND, pBitmap);
    ClientToScreen(&point);
    m_pmenuPop->TrackPopupMenu(TPM_RIGHTBUTTON | TPM_LEFTALIGN, point.x,
    point.y, this);
}

Durch CImage, haben Sie Zugriff auf die tatsächlichen Bits eines DIB-Abschnitts. Sie können ein CImage Objekt an einer beliebigen Stelle verwenden, an der Sie zuvor einen Win32 HBITMAP - oder DIB-Abschnitt verwendet haben.

Sie können entweder MFC oder ATL verwenden CImage .

Hinweis

Wenn Sie ein Projekt mithilfe CImageeines Projekts erstellen, müssen Sie definieren CString , bevor Sie einschließen atlimage.h. Wenn Ihr Projekt ATL ohne MFC verwendet, schließen Sie diese ein atlstr.h , bevor Sie einschließen atlimage.h. Wenn Ihr Projekt MFC verwendet (oder wenn es sich um ein ATL-Projekt mit MFC-Unterstützung handelt), schließen Sie diese ein afxstr.h , bevor Sie einschließen atlimage.h.

Ebenso müssen Sie vor der Aufnahme einschließen atlimage.hatlimpl.cpp. Um dies ganz einfach zu erreichen, schließen Sie atlimage.h Ihre pch.h (stdafx.h in Visual Studio 2017 und früheren Versionen) ein.

Anforderungen

Headeratlimage.h:

CImage::AlphaBlend

Zeigt Bitmaps mit transparenten oder halbtransparenten Pixeln an.

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

Parameter

hDestDC
Behandeln sie den Zielgerätekontext.

xDest
Die x-Koordinate in logischen Einheiten der oberen linken Ecke des Zielrechtecks.

yDest
Die y-Koordinate in logischen Einheiten der oberen linken Ecke des Zielrechtecks.

bSrcAlpha
Ein Alphatransparenzwert, der für die gesamte Quellbitmap verwendet werden soll. Bei der Standard-0xff (255) wird davon ausgegangen, dass Das Bild undurchsichtig ist und nur Alphawerte pro Pixel verwendet werden sollen.

bBlendOp
Die Alpha-Blending-Funktion für Quell- und Zielbitmaps, ein globaler Alphawert, der auf die gesamte Quellbitmap angewendet werden soll, und Formatinformationen für die Quellbitmap. Die Quell- und Zielmischungsfunktionen sind derzeit auf AC_SRC_OVER.

pointDest
Ein Verweis auf eine POINT Struktur, die die obere linke Ecke des Zielrechtecks in logischen Einheiten identifiziert.

nDestWidth
Die Breite des Zielrechtecks in logischen Einheiten.

nDestHeight
Die Höhe des Zielrechtecks in logischen Einheiten.

xSrc
Die logische x-Koordinate der oberen linken Ecke des Quellrechtecks.

ySrc
Die logische y-Koordinate der oberen linken Ecke des Quellrechtecks.

nSrcWidth
Die Breite des Quellrechtecks in logischen Einheiten.

nSrcHeight
Die Höhe des Quellrechtecks in logischen Einheiten.

rectDest
Ein Verweis auf eine RECT Struktur, die das Ziel identifiziert.

rectSrc
Ein Verweis auf eine RECT Struktur, die die Quelle identifiziert.

Rückgabewert

Ungleich Null, wenn erfolgreich, andernfalls 0 (Null).

Hinweise

Alpha-Blend-Bitmaps unterstützen die Farbmischung pro Pixel.

Wenn bBlendOp sie auf den Standardwert AC_SRC_OVERfestgelegt ist, wird die Quellbitmap basierend auf den Alphawerten der Quellpixel über die Zielbitmap platziert.

CImage::Attach

Fügt hBitmap an ein CImage Objekt an.

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

Parameter

hBitmap
Ein Handle zu einem HBITMAP.

eOrientation
Gibt die Ausrichtung der Bitmap an. Dabei kann es sich um eine der folgenden Methoden handeln:

  • DIBOR_DEFAULT Die Ausrichtung der Bitmap wird vom Betriebssystem bestimmt.

  • DIBOR_BOTTOMUP Die Linien der Bitmap sind in umgekehrter Reihenfolge angeordnet. Dadurch wird CImage::GetBits ein Zeiger am Ende des Bitmappuffers zurückgegeben und CImage::GetPitch eine negative Zahl zurückgegeben.

  • DIBOR_TOPDOWN Die Linien der Bitmap befinden sich in der obersten bis unteren Reihenfolge. Dadurch wird CImage::GetBits ein Zeiger auf das erste Byte des Bitmappuffers zurückgegeben und CImage::GetPitch eine positive Zahl zurückgegeben.

Hinweise

Die Bitmap kann entweder eine Bitmap ohne DIB-Abschnitt oder eine DIB-Abschnittsbitmap sein. Eine IsDIBSection Liste der Methoden finden Sie nur mit DIB-Abschnittsbitmaps.

CImage::BitBlt

Kopiert eine Bitmap aus dem Quellgerätekontext in diesen aktuellen Gerätekontext.

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

Parameter

hDestDC
Der Ziel-HDC.

xDest
Die logische x-Koordinate der oberen linken Ecke des Zielrechtecks.

yDest
Die logische y-Koordinate der oberen linken Ecke des Zielrechtecks.

dwROP
Der auszuführende Rastervorgang. Rasteroperationscodes definieren genau, wie die Bits der Quelle, des Ziels und des Musters (wie vom aktuell ausgewählten Pinsel definiert) kombiniert werden, um das Ziel zu bilden. Eine Liste mit anderen Rastervorgangscodes und deren Beschreibungen finden Sie BitBlt im Windows SDK.

pointDest
Eine POINT Struktur, die die obere linke Ecke des Zielrechtecks angibt.

nDestWidth
Die Breite des Zielrechtecks in logischen Einheiten.

nDestHeight
Die Höhe des Zielrechtecks in logischen Einheiten.

xSrc
Die logische x-Koordinate der oberen linken Ecke des Quellrechtecks.

ySrc
Die logische y-Koordinate der oberen linken Ecke des Quellrechtecks.

rectDest
Eine RECT Struktur, die das Zielrechteck angibt.

pointSrc
Eine POINT Struktur, die die obere linke Ecke des Quellrechtecks angibt.

Rückgabewert

Ungleich 0, wenn erfolgreich, andernfalls 0.

Hinweise

Weitere Informationen finden Sie im BitBlt Windows SDK.

CImage::CImage

Erstellt ein CImage-Objekt.

CImage() throw();

Hinweise

Nachdem Sie das Objekt erstellt haben, rufen CreateSie auf, Loadoder AttachLoadFromResourcefügen Sie eine Bitmap an das Objekt an.

Hinweis In Visual Studio behält diese Klasse die Anzahl der CImage erstellten Objekte bei. Wenn die Anzahl zu 0 wechselt, wird die Funktion GdiplusShutdown automatisch aufgerufen, um ressourcen freizugeben, die von GDI+ verwendet werden. Dadurch wird sichergestellt, dass alle CImage Objekte, die direkt oder indirekt von DLLs erstellt wurden, immer ordnungsgemäß zerstört werden und nicht GdiplusShutdown von DllMain aufgerufen werden.

Die Verwendung globaler CImage Objekte in einer DLL wird nicht empfohlen. Wenn Sie ein globales CImage Objekt in einer DLL verwenden müssen, rufen Sie explizit CImage::ReleaseGDIPlus ressourcen frei, die von GDI+ verwendet werden.

CImage::Create

Erstellt eine CImage Bitmap und fügt sie an das zuvor erstellte CImage Objekt an.

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

Parameter

nWidth
Die Breite der CImage Bitmap in Pixeln.

nHeight
Die Höhe der CImage Bitmap in Pixel. Wenn nHeight sie positiv ist, handelt es sich bei der Bitmap um eine BOTTOM-up-DIB, und der Ursprung ist die untere linke Ecke. Wenn nHeight dies negativ ist, handelt es sich bei der Bitmap um einen DIB-Wert von oben unten, und der Ursprung ist die obere linke Ecke.

nBPP
Die Anzahl der Bits pro Pixel in der Bitmap. In der Regel 4, 8, 16, 24 oder 32. Kann 1 für monochrome Bitmaps oder Masken sein.

dwFlags
Gibt an, ob das Bitmapobjekt über einen Alphakanal verfügt. Dies kann eine Kombination aus Null oder mehr der folgenden Werte sein:

  • createAlphaChannel Kann nur verwendet werden, wenn nBPP 32 ist und eCompression ist BI_RGB. Wenn angegeben, weist das erstellte Bild einen Alphawert (Transparenz) für jedes Pixel auf, das im 4. Byte jedes Pixels gespeichert ist (nicht in einem Nicht-Alpha-32-Bit-Bild verwendet). Dieser Alphakanal wird beim Aufrufen CImage::AlphaBlendautomatisch verwendet.

Hinweis

Bei Aufrufen von CImage::DrawAnrufen werden Bilder mit einem Alphakanal automatisch alphaniert und an das Ziel angepasst.

Rückgabewert

Ungleich Null, wenn erfolgreich, andernfalls 0 (Null).

CImage::CreateEx

Erstellt eine CImage Bitmap und fügt sie an das zuvor erstellte CImage Objekt an.

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

Parameter

nWidth
Die Breite der CImage Bitmap in Pixeln.

nHeight
Die Höhe der CImage Bitmap in Pixel. Wenn nHeight sie positiv ist, handelt es sich bei der Bitmap um eine BOTTOM-up-DIB, und der Ursprung ist die untere linke Ecke. Wenn nHeight dies negativ ist, handelt es sich bei der Bitmap um einen DIB-Wert von oben unten, und der Ursprung ist die obere linke Ecke.

nBPP
Die Anzahl der Bits pro Pixel in der Bitmap. In der Regel 4, 8, 16, 24 oder 32. Kann 1 für monochrome Bitmaps oder Masken sein.

eCompression
Gibt den Komprimierungstyp für eine komprimierte Bottom-up-Bitmap an (Top-down-DIBs können nicht komprimiert werden). Folgenden Werte sind möglich:

  • BI_RGB Das Format wird nicht komprimiert. Die Angabe dieses Werts beim Aufrufen CImage::CreateEx entspricht dem Aufrufen CImage::Create.

  • BI_BITFIELDS Das Format ist nicht komprimiert, und die Farbtabelle besteht aus drei DWORD Farbmasken, die die roten, grünen und blauen Komponenten der einzelnen Pixel angeben. Dies ist gültig, wenn sie mit 16- und 32-bpp-Bitmaps verwendet wird.

pdwBitfields
Wird nur verwendet, wenn eCompression dieser wert ist BI_BITFIELDS, andernfalls muss es sein NULL. Ein Zeiger auf ein Array von drei DWORD Bitmasken, die angeben, welche Bits jedes Pixels für die roten, grünen und blauen Komponenten der Farbe verwendet werden. Informationen zu Einschränkungen für die Bitfelder finden Sie im BITMAPINFOHEADER Windows SDK.

dwFlags
Gibt an, ob das Bitmapobjekt über einen Alphakanal verfügt. Dies kann eine Kombination aus Null oder mehr der folgenden Werte sein:

  • createAlphaChannel Kann nur verwendet werden, wenn nBPP 32 ist und eCompression ist BI_RGB. Wenn angegeben, weist das erstellte Bild einen Alphawert (Transparenz) für jedes Pixel auf, das im 4. Byte jedes Pixels gespeichert ist (nicht in einem Nicht-Alpha-32-Bit-Bild verwendet). Dieser Alphakanal wird beim Aufrufen CImage::AlphaBlendautomatisch verwendet.

    Hinweis

    Bei Aufrufen von CImage::DrawAnrufen werden Bilder mit einem Alphakanal automatisch alphaniert und an das Ziel angepasst.

Rückgabewert

Bei Erfolg TRUE. Andernfalls FALSE.

Beispiel

Im folgenden Beispiel wird eine Bitmap mit 100 x 100 Pixel erstellt, wobei 16 Bit zum Codieren der einzelnen Pixel verwendet werden. In einem bestimmten 16-Bit-Pixel codieren Bits 0-3 die rote Komponente, Bits 4-7-codieren grün und Bits 8-11-codieren Blau. Die erneute Standard 4 Bits werden nicht verwendet.

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

CImage::Destroy

Trennt die Bitmap vom CImage Objekt und zerstört die Bitmap.

void Destroy() throw();

CImage::Detach

Trennt eine Bitmap von einem CImage Objekt.

HBITMAP Detach() throw();

Rückgabewert

Ein Handle zur getrennten Bitmap oder NULL wenn keine Bitmap angefügt ist.

CImage::Draw

Kopiert eine Bitmap aus dem Quellgerätekontext in den aktuellen Gerätekontext.

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

Parameter

hDestDC
Ein Handle für den Zielgerätekontext.

xDest
Die x-Koordinate in logischen Einheiten der oberen linken Ecke des Zielrechtecks.

yDest
Die y-Koordinate in logischen Einheiten der oberen linken Ecke des Zielrechtecks.

nDestWidth
Die Breite des Zielrechtecks in logischen Einheiten.

nDestHeight
Die Höhe des Zielrechtecks in logischen Einheiten.

xSrc
Die x-Koordinate in logischen Einheiten der oberen linken Ecke des Quellrechtecks.

ySrc
Die y-Koordinate in logischen Einheiten der oberen linken Ecke des Quellrechtecks.

nSrcWidth
Die Breite des Quellrechtecks in logischen Einheiten.

nSrcHeight
Die Höhe des Quellrechtecks in logischen Einheiten.

rectDest
Ein Verweis auf eine RECT Struktur, die das Ziel identifiziert.

rectSrc
Ein Verweis auf eine RECT Struktur, die die Quelle identifiziert.

pointDest
Ein Verweis auf eine POINT Struktur, die die obere linke Ecke des Zielrechtecks in logischen Einheiten identifiziert.

Rückgabewert

Ungleich Null, wenn erfolgreich, andernfalls 0 (Null).

Hinweise

Draw führt denselben Vorgang aus wie StretchBlt, es sei denn, das Bild enthält eine transparente Farbe oder einen Alphakanal. Führen Sie in diesem Fall Draw denselben Vorgang wie entweder TransparentBlt oder AlphaBlend wie erforderlich aus.

Für Versionen, die Draw kein Quellrechteck angeben, ist das gesamte Quellbild der Standard. Für die Version davon Draw wird keine Größe für das Zielrechteck angegeben, ist die Größe des Quellbilds die Standardeinstellung, und es tritt keine Dehnung oder Verkleinerung auf.

CImage::GetBits

Ruft einen Zeiger auf die tatsächlichen Bitwerte eines bestimmten Pixels in einer Bitmap ab.

void* GetBits() throw();

Rückgabewert

Ein Zeiger auf den Bitmappuffer. Wenn es sich bei der Bitmap um eine bottom-up-DIB handelt, zeigt der Zeiger am Ende des Puffers. Wenn es sich bei der Bitmap um ein DIB von oben nach unten handelt, zeigt der Zeiger auf das erste Byte des Puffers.

Hinweise

Mit diesem Zeiger können Sie zusammen mit dem von GetPitchIhnen zurückgegebenen Wert einzelne Pixel in einem Bild suchen und ändern.

Hinweis

Diese Methode unterstützt nur DIB-Abschnittsbitmaps; Folglich greifen Sie auf die Pixel eines CImage Objekts auf die gleiche Weise wie die Pixel eines DIB-Abschnitts zu. Der zurückgegebene Zeiger verweist auf das Pixel an der Position (0, 0).

CImage::GetBPP

Ruft den Bits-pro-Pixel-Wert ab.

int GetBPP() const throw();

Rückgabewert

Die Anzahl der Bits pro Pixel.

Hinweise

Dieser Wert bestimmt die Anzahl der Bits, die jedes Pixel und die maximale Anzahl von Farben in der Bitmap definieren.

Die Bits pro Pixel sind in der Regel 1, 4, 8, 16, 24 oder 32. biBitCount Weitere Informationen zu diesem Wert finden Sie im Member des BITMAPINFOHEADER Windows SDK.

CImage::GetColorTable

Ruft rote, grüne, blaue (RGB)-Farbwerte aus einem Bereich von Einträgen in der Palette des DIB-Abschnitts ab.

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

Parameter

iFirstColor
Der Farbtabellenindex des ersten abzurufenden Eintrags.

nColors
Die Anzahl der abzurufenden Farbtabelleneinträge.

prgbColors
Ein Zeiger auf das Array von RGBQUAD Strukturen, um die Farbtabelleneinträge abzurufen.

CImage::GetDC

Ruft den Gerätekontext ab, in dem das Bild aktuell ausgewählt ist.

HDC GetDC() const throw();

Rückgabewert

Ein Handle für einen Gerätekontext.

Hinweise

Für jeden Anruf müssen GetDCSie über einen nachfolgenden Anruf verfügen.ReleaseDC

CImage::GetExporterFilterString

Sucht bildformate, die zum Speichern von Bildern verfügbar sind.

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

Parameter

strExporters
Ein Verweis auf ein CSimpleString-Objekt. Weitere Informationen finden Sie unter Hinweise.

aguidFileTypes
Ein Array von GUIDs, wobei jedes Element einem der Dateitypen in der Zeichenfolge entspricht. Im folgenden aguidFileTypes[0] Beispiel pszAllFilesDescription werden GUID_NULL arraywerte neu Standard werden die vom aktuellen Betriebssystem unterstützten Bilddateiformate verwendet.

Hinweis

Eine vollständige Liste der Konstanten finden Sie unter "Image File Format Constants " im Windows SDK.

pszAllFilesDescription
Wenn dieser Parameter nicht NULLder Fall ist, weist die Filterzeichenfolge am Anfang der Liste einen zusätzlichen Filter auf. Dieser Filter hat den aktuellen Wert pszAllFilesDescription für seine Beschreibung und akzeptiert Dateien jeder Erweiterung, die von jedem anderen Exporteur in der Liste unterstützt wird.

Beispiel:

//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
Satz von Bitkennzeichnungen, die angeben, welche Dateitypen aus der Liste ausgeschlossen werden sollen. Zulässige Flags sind:

  • excludeGIF = 0x01 SCHLIEßT GIF-Dateien aus.

  • excludeBMP = 0x02 schließt BMP-Dateien (Windows Bitmap) aus.

  • excludeEMF = 0x04 schließt EMF-Dateien (Enhanced Metafile) aus.

  • excludeWMF = 0x08 schließt WMF-Dateien (Windows-Metadatei) aus.

  • excludeJPEG = 0x10 SCHLIEßT JPEG-Dateien aus.

  • excludePNG = 0x20 schließt PNG-Dateien aus.

  • excludeTIFF = 0x40 schließt TIFF-Dateien aus.

  • excludeIcon = 0x80 schließt ICO-Dateien (Windows Icon) aus.

  • excludeOther = 0x80000000 schließt alle anderen dateitypen aus, die oben nicht aufgeführt sind.

  • excludeDefaultLoad = 0 Zum Laden sind alle Dateitypen standardmäßig enthalten.

  • excludeDefaultSave = excludeIcon | excludeEMF | excludeWMF Zum Speichern werden diese Dateien standardmäßig ausgeschlossen, da sie in der Regel spezielle Anforderungen haben.

chSeparator
Das Trennzeichen, das zwischen den Bildformaten verwendet wird. Weitere Informationen finden Sie unter Hinweise.

Rückgabewert

Ein Standard HRESULT.

Hinweise

Sie können die resultierende Formatzeichenfolge an Ihr MFC-Objekt CFileDialog übergeben, um die Dateierweiterungen der verfügbaren Bildformate im Dialogfeld "Datei speichern unter" verfügbar zu machen.

Der Parameter strExporter weist das Format auf:

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

dabei | handelt es sich um das trennzeichen, das durch chSeparator. Beispiel:

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

Verwenden Sie das Standardtrennzeichen | , wenn Sie diese Zeichenfolge an ein MFC-Objekt CFileDialog übergeben. Verwenden Sie das NULL-Trennzeichen '\0' , wenn Sie diese Zeichenfolge an ein allgemeines Dialogfeld zum Speichern von Dateien übergeben.

CImage::GetHeight

Ruft die Höhe eines Bilds in Pixeln ab.

int GetHeight() const throw();

Rückgabewert

Die Höhe eines Bilds in Pixel.

CImage::GetImporterFilterString

Sucht nach Bildformaten, die zum Laden von Bildern verfügbar sind.

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

Parameter

strImporters
Ein Verweis auf ein CSimpleString-Objekt. Weitere Informationen finden Sie unter Hinweise.

aguidFileTypes
Ein Array von GUIDs, wobei jedes Element einem der Dateitypen in der Zeichenfolge entspricht. Im folgenden Beispiel pszAllFilesDescription ist GUID_NULL *aguidFileTypes[0]* mit den Re Standard-Arraywerten die Bilddateiformate, die vom aktuellen Betriebssystem unterstützt werden.

Hinweis

Eine vollständige Liste der Konstanten finden Sie unter "Image File Format Constants " im Windows SDK.

pszAllFilesDescription
Wenn dieser Parameter nicht NULLder Fall ist, weist die Filterzeichenfolge am Anfang der Liste einen zusätzlichen Filter auf. Dieser Filter hat den aktuellen Wert pszAllFilesDescription für seine Beschreibung und akzeptiert Dateien jeder Erweiterung, die von jedem anderen Exporteur in der Liste unterstützt wird.

Beispiel:

//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
Satz von Bitkennzeichnungen, die angeben, welche Dateitypen aus der Liste ausgeschlossen werden sollen. Zulässige Flags sind:

  • excludeGIF = 0x01 SCHLIEßT GIF-Dateien aus.

  • excludeBMP = 0x02 schließt BMP-Dateien (Windows Bitmap) aus.

  • excludeEMF = 0x04 schließt EMF-Dateien (Enhanced Metafile) aus.

  • excludeWMF = 0x08 schließt WMF-Dateien (Windows-Metadatei) aus.

  • excludeJPEG = 0x10 SCHLIEßT JPEG-Dateien aus.

  • excludePNG = 0x20 schließt PNG-Dateien aus.

  • excludeTIFF = 0x40 schließt TIFF-Dateien aus.

  • excludeIcon = 0x80 schließt ICO-Dateien (Windows Icon) aus.

  • excludeOther = 0x80000000 schließt alle anderen dateitypen aus, die oben nicht aufgeführt sind.

  • excludeDefaultLoad = 0 Zum Laden sind alle Dateitypen standardmäßig enthalten.

  • excludeDefaultSave = excludeIcon | excludeEMF | excludeWMF Zum Speichern werden diese Dateien standardmäßig ausgeschlossen, da sie in der Regel spezielle Anforderungen haben.

chSeparator
Das Trennzeichen, das zwischen den Bildformaten verwendet wird. Weitere Informationen finden Sie unter Hinweise.

Hinweise

Sie können die resultierende Formatzeichenfolge an Ihr MFC-Objekt CFileDialog übergeben, um die Dateierweiterungen der verfügbaren Bildformate im Dialogfeld "Datei öffnen " verfügbar zu machen.

Der Parameter strImporter weist das Format auf:

'Dateibeschreibung 0|. ext0|Dateibeschreibung 1|. ext1|... Dateibeschreibung N|*.extN||

dabei | handelt es sich um das trennzeichen, das durch chSeparator. Beispiel:

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

Verwenden Sie das Standardtrennzeichen | , wenn Sie diese Zeichenfolge an ein MFC-Objekt CFileDialog übergeben. Verwenden Sie das NULL-Trennzeichen '\0' , wenn Sie diese Zeichenfolge an ein allgemeines Dialogfeld "Datei öffnen " übergeben.

CImage::GetMaxColorTableEntries

Ruft die maximale Anzahl von Einträgen in der Farbtabelle ab.

int GetMaxColorTableEntries() const throw();

Rückgabewert

Die Anzahl der Einträge in der Farbtabelle.

Hinweise

Diese Methode unterstützt nur DIB-Abschnittsbitmaps.

CImage::GetPitch

Ruft den Neigungswinkel eines Bilds ab.

int GetPitch() const throw();

Rückgabewert

Die Neigung des Bilds. Wenn der Rückgabewert negativ ist, ist die Bitmap ein bottom-up DIB, und sein Ursprung ist die untere linke Ecke. Wenn der Rückgabewert positiv ist, ist die Bitmap ein TOP-down-DIB, und sein Ursprung ist die obere linke Ecke.

Hinweise

Die Neigung ist der Abstand zwischen zwei Speicheradressen, die den Anfang einer Bitmapzeile und den Anfang der nächsten Bitmapzeile darstellen. Da die Neigung in Byte gemessen wird, hilft Ihnen die Neigung eines Bilds, das Pixelformat zu bestimmen. Der Pitch kann auch zusätzlichen Arbeitsspeicher enthalten, der für die Bitmap reserviert ist.

Wird verwendet GetPitchGetBits , um einzelne Pixel eines Bilds zu finden.

Hinweis

Diese Methode unterstützt nur DIB-Abschnittsbitmaps.

CImage::GetPixel

Ruft die Farbe des Pixels an der durch x und y angegebenen Position ab.

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

Parameter

x
Die x-Koordinate des Pixels.

y
Die y-Koordinate des Pixels.

Rückgabewert

Der Rot-, Grün-, Blauwert (RGB) des Pixels. Wenn sich das Pixel außerhalb des aktuellen Clippingbereichs befindet, lautet CLR_INVALIDder Rückgabewert .

CImage::GetPixelAddress

Ruft die genaue Adresse eines Pixels ab.

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

Parameter

x
Die x-Koordinate des Pixels.

y
Die y-Koordinate des Pixels.

Hinweise

Die Adresse wird gemäß den Koordinaten eines Pixels, der Neigung der Bitmap und den Bits pro Pixel bestimmt.

Bei Formaten mit weniger als 8 Bit pro Pixel gibt diese Methode die Adresse des Bytes zurück, das das Pixel enthält. Wenn ihr Bildformat beispielsweise 4 Bit pro Pixel aufweist, GetPixelAddress gibt die Adresse des ersten Pixels im Byte zurück, und Sie müssen für 2 Pixel pro Byte berechnen.

Hinweis

Diese Methode unterstützt nur DIB-Abschnittsbitmaps.

CImage::GetTransparentColor

Ruft die indizierte Position der transparenten Farbe in der Farbpalette ab.

LONG GetTransparentColor() const throw();

Rückgabewert

Der Index der transparenten Farbe.

CImage::GetWidth

Ruft die Breite eines Bilds in Pixeln ab.

int GetWidth() const throw();

Rückgabewert

Die Breite der Bitmap in Pixeln.

CImage::IsDIBSection

Bestimmt, ob die angefügte Bitmap ein DIB-Abschnitt ist.

bool IsDIBSection() const throw();

Rückgabewert

TRUE wenn die angefügte Bitmap ein DIB-Abschnitt ist. Andernfalls FALSE.

Hinweise

Wenn die Bitmap kein DIB-Abschnitt ist, können Sie nicht die folgenden CImage Methoden verwenden, die nur DIB-Abschnittsbitmaps unterstützen:

CImage::IsIndexed

Bestimmt, ob die Pixel einer Bitmap einer Farbpalette zugeordnet sind.

bool IsIndexed() const throw();

Rückgabewert

TRUE wenn indiziert; andernfalls FALSE.

Hinweise

Diese Methode gibt nur zurück TRUE , wenn die Bitmap 8-Bit (256 Farben) oder weniger ist.

Hinweis

Diese Methode unterstützt nur DIB-Abschnittsbitmaps.

CImage::IsNull

Bestimmt, ob derzeit eine Bitmap geladen wird.

bool IsNull() const throw();

Hinweise

Diese Methode gibt zurück TRUE , wenn eine Bitmap zurzeit nicht geladen ist; andernfalls FALSE.

CImage::IsTransparencySupported

Gibt an, ob die Anwendung transparente Bitmaps unterstützt.

static BOOL IsTransparencySupported() throw();

Rückgabewert

Nonzero, wenn die aktuelle Plattform Transparenz unterstützt. andernfalls 0.

Hinweise

Wenn der Rückgabewert nicht null ist und Transparenz unterstützt wird, werden transparente AlphaBlendTransparentBltFarben aufgerufen oder Draw verarbeitet.

CImage::Load

Lädt ein Bild

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

Parameter

pszFileName
Ein Zeiger auf eine Zeichenfolge, die den Namen der zu ladenden Bilddatei enthält.

pStream
Ein Zeiger auf einen Datenstrom, der den Namen der zu ladenden Bilddatei enthält.

Rückgabewert

Ein Standard HRESULT.

Hinweise

Lädt das durch pszFileName oder pStream.

Gültige Bildtypen sind BMP, GIF, JPEG, PNG und TIFF.

CImage::LoadFromResource

Lädt ein Bild aus einer BITMAP Ressource.

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

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

Parameter

hInstance
Behandeln Sie eine Instanz des Moduls, das das zu ladende Bild enthält.

pszResourceName
Ein Zeiger auf die Zeichenfolge, die den Namen der Ressource enthält, die das zu ladende Bild enthält.

nIDResource
Die ID der zu ladenden Ressource

Hinweise

Die Ressource muss vom Typ BITMAPsein.

CImage::MaskBlt

Kombiniert die Farbdaten für die Quell- und Zielbitmaps mithilfe der angegebenen Maske und des Rastervorgangs.

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

Parameter

hDestDC
Das Handle für das Modul, dessen ausführbare Datei die Ressource enthält.

xDest
Die x-Koordinate in logischen Einheiten der oberen linken Ecke des Zielrechtecks.

yDest
Die y-Koordinate in logischen Einheiten der oberen linken Ecke des Zielrechtecks.

nDestWidth
Die Breite des Zielrechtecks und der Quellbitmap in logischen Einheiten.

nDestHeight
Die Höhe in logischen Einheiten des Zielrechtecks und der Quellbitmap.

xSrc
Die logische x-Koordinate der oberen linken Ecke der Quellbitmap.

ySrc
Die logische y-Koordinate der oberen linken Ecke der Quellbitmap.

hbmMask
Handle to the monochrome mask bitmap combined with the color bitmap in the source device context.

xMask
Der horizontale Pixeloffset für die durch den hbmMask Parameter angegebene Maskenbitmap.

yMask
Der vertikale Pixeloffset für die durch den hbmMask Parameter angegebene Maskenbitmap.

dwROP
Gibt sowohl Vordergrund- als auch Hintergrund-ternäre Rastervorgangscodes an, die von der Methode verwendet werden, um die Kombination aus Quell- und Zieldaten zu steuern. Der Code für den Hintergrundrastervorgang wird im Byte mit hoher Reihenfolge des Hochreihenfolgenworts dieses Werts gespeichert. der Vordergrundrastervorgangscode wird im Byte mit niedriger Reihenfolge des Worts mit hoher Reihenfolge dieses Werts gespeichert. Das Wort mit niedriger Reihenfolge dieses Werts wird ignoriert und sollte null sein. Eine Erläuterung von Vordergrund und Hintergrund im Kontext dieser Methode finden Sie MaskBlt im Windows SDK. Eine Liste allgemeiner Rastervorgangscodes finden Sie im BitBlt Windows SDK.

rectDest
Ein Verweis auf eine RECT Struktur, die das Ziel identifiziert.

pointSrc
Eine POINT Struktur, die die obere linke Ecke des Quellrechtecks angibt.

pointMask
Eine POINT Struktur, die die obere linke Ecke der Maskenbitmap angibt.

pointDest
Ein Verweis auf eine POINT Struktur, die die obere linke Ecke des Zielrechtecks in logischen Einheiten identifiziert.

Rückgabewert

Wenn dies erfolgreich ist, andernfalls 0.

Hinweise

Diese Methode gilt nur für Windows NT, Versionen 4.0 und höher.

CImage::operator HBITMAP

Verwenden Sie diesen Operator, um das angefügte Windows GDI-Handle des CImage Objekts abzurufen. Dieser Operator ist ein Umwandlungsoperator, der die direkte Verwendung eines HBITMAP Objekts unterstützt.

CImage::PlgBlt

Führt eine Bitblockübertragung von einem Rechteck in einem Quellgerätekontext in ein Parallelogramm in einem Zielgerätekontext aus.

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

Parameter

hDestDC
Ein Handle für den Zielgerätekontext.

pPoints
Ein Zeiger auf ein Array von drei Punkten im logischen Raum, die drei Ecken des Zielparallelogramms identifizieren. Die obere linke Ecke des Quellrechtecks wird dem ersten Punkt in diesem Array, der oberen rechten Ecke zum zweiten Punkt in diesem Array und der unteren linken Ecke zum dritten Punkt zugeordnet. Die untere rechte Ecke des Quellrechtecks wird dem impliziten vierten Punkt im Parallelogramm zugeordnet.

hbmMask
Ein Handle zu einer optionalen monochromen Bitmap, die zum Maskieren der Farben des Quellrechtecks verwendet wird.

xSrc
Die x-Koordinate in logischen Einheiten der oberen linken Ecke des Quellrechtecks.

ySrc
Die y-Koordinate in logischen Einheiten der oberen linken Ecke des Quellrechtecks.

nSrcWidth
Die Breite des Quellrechtecks in logischen Einheiten.

nSrcHeight
Die Höhe des Quellrechtecks in logischen Einheiten.

xMask
Die x-Koordinate der oberen linken Ecke der monochromen Bitmap.

yMask
Die y-Koordinate der oberen linken Ecke der monochromen Bitmap.

rectSrc
Ein Verweis auf eine RECT Struktur, die die Koordinaten des Quellrechtecks angibt.

pointMask
Eine POINT Struktur, die die obere linke Ecke der Maskenbitmap angibt.

Rückgabewert

Wenn dies erfolgreich ist, andernfalls 0.

Hinweise

Wenn hbmMask eine gültige monochrome Bitmap identifiziert wird, wird diese Bitmap verwendet, PlgBit um die Bits von Farbdaten aus dem Quellrechteck zu maskieren.

Diese Methode gilt nur für Windows NT, Versionen 4.0 und höher. Ausführlichere Informationen finden Sie PlgBlt im Windows SDK.

CImage::ReleaseDC

Gibt den Gerätekontext frei.

void ReleaseDC() const throw();

Hinweise

Da jeweils nur eine Bitmap in einem Gerätekontext ausgewählt werden kann, müssen Sie für jeden Aufruf aufrufenReleaseDC.GetDC

CImage::ReleaseGDIPlus

Veröffentlicht Ressourcen, die von GDI+ verwendet werden.

void ReleaseGDIPlus() throw();

Hinweise

Diese Methode muss aufgerufen werden, um ressourcen freizugeben, die einem globalen CImage Objekt zugeordnet sind. Siehe CImage::CImage.

CImage::Save

Speichert ein Bild im angegebenen Datenstrom oder in der angegebenen Datei auf dem Datenträger.

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

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

Parameter

pStream
Ein Zeiger auf ein COM-IStream-Objekt, das die Dateibilddaten enthält.

pszFileName
Ein Zeiger auf den Dateinamen für das Bild.

guidFileType
Der Dateityp, unter dem das Bild gespeichert werden soll. Dabei kann es sich um eine der folgenden Methoden handeln:

  • ImageFormatBMP Ein nicht komprimiertes Bitmapbild.

  • ImageFormatPNG Ein komprimiertes PNG-Bild (Portable Network Graphic).

  • ImageFormatJPEG Ein komprimiertes JPEG-Bild.

  • ImageFormatGIF Ein komprimiertes GIF-Bild.

Hinweis

Eine vollständige Liste der Konstanten finden Sie unter "Image File Format Constants " im Windows SDK.

Rückgabewert

Ein Standard HRESULT.

Hinweise

Rufen Sie diese Funktion auf, um das Bild mit einem angegebenen Namen und Typ zu speichern. Wenn der guidFileType Parameter nicht enthalten ist, wird die Dateierweiterung des Dateinamens verwendet, um das Bildformat zu bestimmen. Wenn keine Erweiterung bereitgestellt wird, wird das Bild im BMP-Format gespeichert.

CImage::SetColorTable

Legt die Farbwerte rot, grün, blau (RGB) für einen Bereich von Einträgen in der Palette des DIB-Abschnitts fest.

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

Parameter

iFirstColor
Der Farbtabellenindex des ersten festzulegenden Eintrags.

nColors
Die Anzahl der festzulegenden Farbtabelleneinträge.

prgbColors
Ein Zeiger auf das Array von RGBQUAD Strukturen, um die Farbtabelleneinträge festzulegen.

Hinweise

Diese Methode unterstützt nur DIB-Abschnittsbitmaps.

CImage::SetPixel

Legt die Farbe eines Pixels an einer bestimmten Position in der Bitmap fest.

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

Parameter

x
Die horizontale Position des festzulegenden Pixels.

y
Die vertikale Position des festzulegenden Pixels.

color
Die Farbe, auf die Sie das Pixel festlegen.

Hinweise

Diese Methode schlägt fehl, wenn die Pixelkoordinaten außerhalb des ausgewählten Clippingbereichs liegen.

CImage::SetPixelIndexed

Legt die Pixelfarbe auf die Farbe fest, die sich iIndex in der Farbpalette befindet.

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

Parameter

x
Die horizontale Position des festzulegenden Pixels.

y
Die vertikale Position des festzulegenden Pixels.

iIndex
Der Index einer Farbe in der Farbpalette.

CImage::SetPixelRGB

Legt das Pixel an den angegebenen x Positionen und y auf die Farben fest, die durch r, gund , in beinem roten, grünen, blauen (RGB)-Bild angegeben sind.

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

Parameter

x
Die horizontale Position des festzulegenden Pixels.

y
Die vertikale Position des festzulegenden Pixels.

r
Die Intensität der roten Farbe.

g
Die Intensität der grünen Farbe.

b
Die Intensität der blauen Farbe.

Hinweise

Die Parameter "Rot", "Grün" und "Blau" werden jeweils durch eine Zahl zwischen 0 und 255 dargestellt. Wenn Sie alle drei Parameter auf Null festlegen, ist die kombinierte resultierende Farbe schwarz. Wenn Sie alle drei Parameter auf 255 festlegen, ist die kombinierte resultierende Farbe weiß.

CImage::SetTransparentColor

Legt eine Farbe an einer bestimmten indizierten Position als transparent fest.

LONG SetTransparentColor(LONG iTransparentColor) throw();

Parameter

iTransparentColor
Der Index in einer Farbpalette der Farbe, die auf transparent festgelegt werden soll. Wenn -1, wird keine Farbe auf transparent festgelegt.

Rückgabewert

Der Index der zuvor als transparent festgelegten Farbe.

CImage::StretchBlt

Kopiert eine Bitmap aus dem Quellgerätekontext in diesen aktuellen Gerätekontext.

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

Parameter

hDestDC
Ein Handle für den Zielgerätekontext.

xDest
Die x-Koordinate in logischen Einheiten der oberen linken Ecke des Zielrechtecks.

yDest
Die y-Koordinate in logischen Einheiten der oberen linken Ecke des Zielrechtecks.

nDestWidth
Die Breite des Zielrechtecks in logischen Einheiten.

nDestHeight
Die Höhe des Zielrechtecks in logischen Einheiten.

dwROP
Der auszuführende Rastervorgang. Rasteroperationscodes definieren genau, wie die Bits der Quelle, des Ziels und des Musters (wie vom aktuell ausgewählten Pinsel definiert) kombiniert werden, um das Ziel zu bilden. Eine Liste mit anderen Rastervorgangscodes und deren Beschreibungen finden Sie BitBlt im Windows SDK.

rectDest
Ein Verweis auf eine RECT Struktur, die das Ziel identifiziert.

xSrc
Die x-Koordinate in logischen Einheiten der oberen linken Ecke des Quellrechtecks.

ySrc
Die y-Koordinate in logischen Einheiten der oberen linken Ecke des Quellrechtecks.

nSrcWidth
Die Breite des Quellrechtecks in logischen Einheiten.

nSrcHeight
Die Höhe des Quellrechtecks in logischen Einheiten.

rectSrc
Ein Verweis auf eine RECT Struktur, die die Quelle identifiziert.

Rückgabewert

Wenn dies erfolgreich ist, andernfalls 0.

Hinweise

Weitere Informationen finden Sie im StretchBlt Windows SDK.

CImage::TransparentBlt

Kopiert eine Bitmap aus dem Quellgerätekontext in diesen aktuellen Gerätekontext.

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

Parameter

hDestDC
Ein Handle für den Zielgerätekontext.

xDest
Die x-Koordinate in logischen Einheiten der oberen linken Ecke des Zielrechtecks.

yDest
Die y-Koordinate in logischen Einheiten der oberen linken Ecke des Zielrechtecks.

nDestWidth
Die Breite des Zielrechtecks in logischen Einheiten.

nDestHeight
Die Höhe des Zielrechtecks in logischen Einheiten.

crTransparent
Die Farbe in der Quellbitmap, die als transparent behandelt werden soll. Standardmäßig sollte die Farbe, CLR_INVALIDdie derzeit als transparente Farbe des Bilds festgelegt ist, verwendet werden.

rectDest
Ein Verweis auf eine RECT Struktur, die das Ziel identifiziert.

xSrc
Die x-Koordinate in logischen Einheiten der oberen linken Ecke des Quellrechtecks.

ySrc
Die y-Koordinate in logischen Einheiten der oberen linken Ecke des Quellrechtecks.

nSrcWidth
Die Breite des Quellrechtecks in logischen Einheiten.

nSrcHeight
Die Höhe des Quellrechtecks in logischen Einheiten.

rectSrc
Ein Verweis auf eine RECT Struktur, die die Quelle identifiziert.

Rückgabewert

TRUE wenn dies erfolgreich ist, andernfalls FALSE.

Hinweise

TransparentBlt wird für Quellbitmaps von 4 Bit pro Pixel und 8 Bit pro Pixel unterstützt. Wird CImage::AlphaBlend verwendet, um 32 Bit pro Pixel Bitmaps mit Transparenz anzugeben.

Beispiel

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

Siehe auch

MMXSwarm Beispiel
SimpleImage Beispiel
Geräteunabhängige Bitmaps
CreateDIBSection
ATL-COM-Desktop-Komponenten
Geräteunabhängige Bitmaps