Bitmapfunktionen (GDI+)

Windows GDI+ macht eine flache API verfügbar, die aus etwa 600 Funktionen besteht, die in Gdiplus.dll implementiert und in Gdiplusflat.h deklariert werden. Die Funktionen in der GDI+ flachen API werden von einer Sammlung von etwa 40 C++-Klassen umschlossen. Es wird empfohlen, die Funktionen in der flachen API nicht direkt aufzurufen. Wenn Sie aufruft, GDI+, sollten Sie dazu die Methoden und Funktionen aufrufen, die von den C++-Wrappern bereitgestellt werden. Microsoft Product Support Services bietet keine Unterstützung für Code, der die flache API direkt aufruft. Weitere Informationen zur Verwendung dieser Wrappermethoden finden Sie unter GDI+ Flat-API.

Die folgenden flachen API-Funktionen werden von der Bitmap C++-Klasse umschlossen.

Bitmapfunktionen und entsprechende Wrappermethoden

Flat-Funktion Wrappermethode BESCHREIBUNG
GpStatus WINGDIPAPI GdipCreateBitmapFromStream(IStream * stream, GpBitmap * * bitmap) Bitmap::Bitmap Erstellt ein Bitmap::Bitmap-Objekt basierend auf einem Stream. Diese Funktion verwendet keine Bildfarbverwaltung (ICM). Sie wird aufgerufen, wenn der useEmbeddedColorManagement-Parameter des Bitmap::Bitmap-Konstruktors auf FALSE festgelegt ist.
GpStatus WINGDIPAPI GdipCreateBitmapFromFile(GDIPCONST WCHAR * filename, GpBitmap * * bitmap) Bitmap::Bitmap Erstellt ein Bitmap::Bitmap-Objekt basierend auf einer Bilddatei. Diese Funktion verwendet keine ICM. Sie wird aufgerufen, wenn der useEmbeddedColorManagement-Parameter des Bitmap::Bitmap-Konstruktors auf FALSE festgelegt ist.
GpStatus WINGDIPAPI GdipCreateBitmapFromStreamICM(IStream * stream, GpBitmap * * bitmap) Bitmap::Bitmap Erstellt ein Bitmap::Bitmap-Objekt basierend auf einem Stream. Diese Funktion verwendet ICM. Sie wird aufgerufen, wenn der useEmbeddedColorManagement-Parameter des Bitmap::Bitmap-Konstruktors auf TRUE festgelegt ist.
GpStatus WINGDIPAPI GdipCreateBitmapFromFileICM(GDIPCONST WCHAR * filename, GpBitmap * * bitmap) Bitmap::Bitmap Erstellt ein Bitmap::Bitmap-Objekt basierend auf einer Bilddatei. Diese Funktion verwendet ICM. Sie wird aufgerufen, wenn der useEmbeddedColorManagement-Parameter des Bitmap::Bitmap-Konstruktors auf TRUE festgelegt ist.
GpStatus WINGDIPAPI GdipCreateBitmapFromScan0(INT width, INT height, INT stride, PixelFormat format, BYTE * scan0, GpBitmap * * bitmap) Bitmap::Bitmap Erstellt ein Bitmap::Bitmap-Objekt basierend auf einem Bytearray zusammen mit Größen- und Formatinformationen.
GpStatus WINGDIPAPI GdipCreateBitmapFromGraphics(INT width, INT height, GpGraphics * target, GpBitmap * * bitmap) Bitmap::Bitmap Erstellt ein Bitmap::Bitmap-Objekt basierend auf einem Graphics-Objekt, einer Breite und einer Höhe.
GpStatus WINGDIPAPI GdipCreateBitmapFromDirectDrawSurface(IDirectDrawSurface7 * surface, GpBitmap * * bitmap) Bitmap::Bitmap Erstellt ein Bitmap::Bitmap-Objekt basierend auf einer DirectDraw-Oberfläche. Das Bitmap::Bitmap-Objekt behält einen Verweis auf die DirectDraw-Oberfläche bei, bis das Bitmap::Bitmap-Objekt gelöscht wird oder den Gültigkeitsbereich übergibt.
GpStatus WINGDIPAPI GdipCreateBitmapFromGdiDib(GDIPCONST BITMAPINFO * gdiBitmapInfo, VOID * gdiBitmapData, GpBitmap * * bitmap) Bitmap::Bitmap Erstellt ein Bitmap::Bitmap-Objekt basierend auf einer BITMAPINFO-Struktur und einem Array von Pixeldaten.
GpStatus WINGDIPAPI GdipCreateBitmapFromHBITMAP(HBITMAP hbm, HPALETTE hpal, GpBitmap * * bitmap) Bitmap::Bitmap Erstellt ein Bitmap::Bitmap-Objekt basierend auf einem Handle für eine Windows Windows Graphics Device Interface Bitmap (GDI) und einem Handle für eine GDI-Palette.
GpStatus WINGDIPAPI GdipCreateHBITMAPFromBitmap(GpBitmap * bitmap, HBITMAP * hbmReturn, ARGB background) Bitmap::GetHBITMAP Die Bitmap::GetHBITMAP-Methode erstellt eine GDI-Bitmap aus diesem Bitmap-Objekt.
GpStatus WINGDIPAPI GdipCreateBitmapFromHICON(HICON hicon, GpBitmap * * bitmap) Bitmap::Bitmap Erstellt ein Bitmap-Objekt basierend auf einem Symbol.
GpStatus WINGDIPAPI GdipCreateHICONFromBitmap(GpBitmap * bitmap, HICON * hbmReturn) Bitmap::GetHICON Die Bitmap::GetHICON-Methode erstellt ein Symbol aus diesem Bitmap-Objekt.
GpStatus WINGDIPAPI GdipCreateBitmapFromResource(HINSTANCE hInstance, GDIPCONST WCHAR * lpBitmapName, GpBitmap * * bitmap) Bitmap::Bitmap Erstellt ein Bitmap::Bitmap-Objekt basierend auf einem Anwendungs- oder DLL-Instanzhandle und dem Namen einer Bitmapressource.
GpStatus WINGDIPAPI GdipCloneBitmapArea(REAL x, REAL y, REAL width, REAL height, PixelFormat format, GpBitmap * srcBitmap, GpBitmap * * dstBitmap) Bitmap::Clone Die Bitmap::Clone-Methode erstellt ein neues Bitmap-Objekt, indem ein Teil dieser Bitmap kopiert wird.
GpStatus WINGDIPAPI GdipCloneBitmapAreaI(INT x, INT y, INT width, INT height, PixelFormat format, GpBitmap * srcBitmap, GpBitmap * * dstBitmap) Bitmap::Clone Die Bitmap::Clone-Methode erstellt ein neues Bitmap-Objekt, indem ein Teil dieser Bitmap kopiert wird.
GpStatus WINGDIPAPI GdipBitmapLockBits(GpBitmap * bitmap, GDIPCONST GpRect * rect, UINT flags, PixelFormat format, BitmapData * lockedBitmapData) Bitmap::LockBits Die Bitmap::LockBits-Methode sperrt einen rechteckigen Teil dieser Bitmap und stellt einen temporären Puffer bereit, den Sie zum Lesen oder Schreiben von Pixeldaten in einem angegebenen Format verwenden können. Alle Pixeldaten, die Sie in den Puffer schreiben, werden in das Bitmap-Objekt kopiert, wenn Sie Bitmap::UnlockBitsaufrufen.
GpStatus WINGDIPAPI GdipBitmapUnlockBits(GpBitmap * bitmap, BitmapData * lockedBitmapData) Bitmap::UnlockBits Die Bitmap::UnlockBits-Methode entsperrt einen Teil dieser Bitmap, der zuvor durch einen Aufruf von Bitmap::LockBitsgesperrt wurde.
GpStatus WINGDIPAPI GdipBitmapGetPixel(GpBitmap * bitmap, INT x, INT y, ARGB * color) Bitmap::GetPixel Die Bitmap::GetPixel-Methode ruft die Farbe eines angegebenen Pixels in dieser Bitmap ab.
GpStatus WINGDIPAPI GdipBitmapSetPixel(GpBitmap * bitmap, INT x, INT y, ARGB color) Bitmap::SetPixel Die Bitmap::SetPixel-Methode legt die Farbe eines angegebenen Pixels in dieser Bitmap fest.
GpStatus WINGDIPAPI GdipBitmapSetResolution(GpBitmap * bitmap, REAL xdpi, REAL ydpi) Bitmap::SetResolution Die Bitmap::SetResolution-Methode legt die Auflösung dieses Bitmap-Objekts fest.
GpStatus WINGDIPAPI GdipBitmapConvertFormat(IN GpBitmap * pInputBitmap, PixelFormat format, DitherType dithertype, PaletteType palettetype, ColorPalette * palette, REAL alphaThresholdPercent) Bitmap::ConvertFormat Die Bitmap::ConvertFormat-Methode konvertiert eine Bitmap in ein angegebenes Pixelformat. Die ursprünglichen Pixeldaten in der Bitmap werden durch die neuen Pixeldaten ersetzt.
GpStatus WINGDIPAPI GdipInitializePalette(OUT ColorPalette * palette, PaletteType palettetype, INT optimalColors, BOOL useTransparentColor, GpBitmap * bitmap) Bitmap::InitializePalette Die Bitmap::InitializePalette-Methode initialisiert eine standardmäßige, optimale oder benutzerdefinierte Farbpalette.
GpStatus WINGDIPAPI GdipBitmapApplyEffect(GpBitmap * bitmap, CGpEffect * effect, RECT * roi, BOOL useAuxData, VOID * * auxData, INT * auxDataSize) Bitmap::ApplyEffect Die Bitmap::ApplyEffect-Methode ändert dieses Bitmap-Objekt durch Anwenden eines angegebenen Effekts.
GpStatus WINGDIPAPI GdipBitmapCreateApplyEffect(GpBitmap * * inputBitmaps, INT numInputs, CGpEffect * effect, RECT * roi, RECT * outputRect, GpBitmap * * outputBitmap, BOOL useAuxData, VOID * * auxData, INT * auxDataSize) Bitmap::ApplyEffect Die Bitmap::ApplyEffect-Methode erstellt ein neues Bitmap-Objekt, indem ein angegebener Effekt auf ein vorhandenes Bitmap-Objekt angewendet wird.
GpStatus WINGDIPAPI GdipBitmapGetHistogram(GpBitmap * bitmap, IN HistogramFormat format, IN UINT NumberOfEntries, OUT UINT * channel0, OUT UINT * channel1, OUT UINT * channel2, OUT UINT * channel3) Bitmap::GetHistogram Die Bitmap::GetHistogram-Methode gibt ein oder mehrere Histogramme für angegebene Farbkanäle dieses Bitmap-Objekts zurück.
GpStatus WINGDIPAPI GdipBitmapGetHistogramSize(IN HistogramFormat format, OUT UINT * NumberOfEntries) Bitmap::GetHistogramSize Bitmap::GetHistogramSize gibt die Anzahl der Elemente (in einem Array von UINTs) zurück, die Sie zuordnen müssen, bevor Sie die Bitmap::GetHistogram-Methode eines Bitmap-Objekts aufrufen.
Status _ _ stdcall GdipCreateEffect(const GUID guid, CGpEffect * * effect) Wirkung Die Konstruktoren aller Nachfolger der Effect-Klasse rufen GdipCreateEffect auf. Der Blur-Konstruktor ruft z. B. Folgendes auf: GdipCreateEffect(BlurEffectGuid, &nativeEffect); BlurEffectGuid ist eine Konstante, die in Gdipluseffects.h definiert ist.
Status _ _ stdcall GdipDeleteEffect(CGpEffect * effect) virtual ~Effect() Bereinigt ressourcen, die von einem Bitmap-Objekt verwendet werden.
Status _ _ stdcall GdipGetEffectParameterSize(CGpEffect * effect, UINT * size) Effect::GetParameterSize Die Effect::GetParameterSize-Methode ruft die Gesamtgröße der Parameter in Bytes ab, die derzeit für diesen Effectfestgelegt sind. Die Effect::GetParameterSize-Methode wird normalerweise für ein Objekt aufgerufen, das eine Instanz eines Nachfolgers der Effect-Klasse ist.
Status _ _ stdcall GdipSetEffectParameters(CGpEffect * effect, const VOID * params, const UINT size) Wirkung Jeder Nachfolger der Effect-Klasse verfügt über eine SetParameters-Methode, die die geschützte Methode Effect::SetParameters aufruft, die wiederum GdipSetEffectParameters aufruft. Die Blur::SetParameters-Methode ruft beispielsweise Folgendes auf: Effect::SetParameters(parameters, size).
Status _ _ stdcall GdipGetEffectParameters(CGpEffect * effect, UINT * size, VOID * params) Wirkung Jeder Nachfolger der Effect-Klasse verfügt über eine GetParameters-Methode, die die geschützte Methode Effect::GetParameters aufruft, die wiederum GdipSetEffectParameters aufruft. Die Blur::GetParameters-Methode ruft z. B. Folgendes auf: Effect::GetParameters(parameters, size).
GpStatus WINGDIPAPI GdipTestControl(GpTestControlEnum-Steuerelement, void * param) Nicht von Wrappern aufgerufen Wird für interne Tests von GDI+ verwendet. Gibt Änderungen am Bildverarbeitungsverhalten an. Die Bedeutung des Param-Parameters variiert je nach dem im Steuerelementparameter übergebenen Wert.
Wenn der Steuerelementparameter auf TestControlForceBilinear festgelegt ist, zeigt param auf einen Wert vom Typ BOOL. Wenn dieser Wert TRUE ist und der aktuelle Interpolationsmodus etwas anderes als "InterpolationModeRestNeighbor"ist, wird der Algorithmus "InterpolationModeBilinear" verwendet. Wenn der Wert, auf den der Parameter zeigt, FALSE ist oder der aktuelle Interpolationsmodus "InterpolationModeRestNeighbor"lautet, bleibt das Verhalten von GDI+ unverändert.
Wenn der Steuerelementparameter auf TestControlNoICM festgelegt ist, zeigt param auf einen Wert vom Typ BOOL. Wenn dieser Wert TRUE ist, werden ICM Profile ignoriert, wenn Bilder in den Arbeitsspeicher geladen werden. Wenn der Wert, auf den der Parameter zeigt, FALSE ist, bleibt das Verhalten von GDI+ unverändert.
Wenn der Steuerelementparameter auf TestControlGetBuildNumber festgelegt ist, ist param ein Ausgabeparameter, der auf eine 32-Bit-Ganzzahlvariable zeigt. Diese Variable empfängt die GDI+ Buildnummer.
GdipTestControl ist nicht threadsicher. es wird davon ausgegangen, dass es nur einen Thread gibt, der GDI+ verwendet. Wenn Sie GdipTestControl in einer Multithreadumgebung aufrufen, sind die Ergebnisse unvorhersehbar.
Die GpTestControlEnum-Enumeration verfügt über drei Elemente: TestControlForceBilinear = 0, TestControlNoICM = 1 und TestControlGetBuildNumber = 2.