| Herd Software Entwicklung
|=
DaVinci Grafikbibliothek
|==
DaVinci Dokumentation Home Search Order


Leonardo: Funktion Funktion StretchDIBBlt

Die Funktion StretchDIBBlt gibt eine DIB mit 1,2,4,8,16,24 oder 32 Bit Farbtiefe auf einem Windows DC aus und streckt oder stacht die Bitmap falls erforderlich. Sie ist eine Wrapper-Funktion zum einfacheren Aufruf der Funktion der Windows API-Funktion StretchDIBits.

BOOL API StretchDIBBlt (
HDC hDC,
int xDst,
int yDst,
int dxDst,
int dyDst,
HDIB hdib,
int xSrc,
int ySrc,
int dxSrc,
int dySrc,
LONG rop);

Parameter Typ Beschreibung

hDC HDC Legt den Zielgerätekontext für eine Bildschirmoberfläche, ein Speicher-Bitmap oder Metafile fest.

xDst int Linke x-Koordinate (in virtuellen Einheiten) des Ursprungs des Zielrechtecks.

yDst int Obere y-Koordinate (in virtuellen Einheiten) des Ursprungs des Zielrechtecks.

dxDst int Breite (in virtuellen Einheiten) des Zielrechtecks.

dyDst int Höhe (in virtuellen Einheiten) des Zielrechtecks.

hdib HDIB DIB-Handle aus dem die Grafikdaten zu kopieren sind (z.B. von ipImportExt oder LoadDIBFromFile).

xSrc int Linke x-Koordinate (in Pixel) der Quelle im DIB.

ySrc int Untere y-Koordinate (in Pixel) der Quelle im DIB.

dxSrc int Breite (in Pixel) des Quellrechtecks im DIB.

dySrct int Höhe (in Pixel) des Quellrechtecks im DIB.

rop LONG Legt die durchzuführende Rasteroperation fest. Die Codes der Rasteroperationen bestimmen, wie die GDI Farben bei Ausgabeoperationen kombiniert, die einen aktiven Pinsel, ein mögliches Quell-Bitmap und ein Ziel-Bitmap einschliessen. Normalweise SRCCOPY.

Rückgabewert

Der Rückgabewert ist die Anzahl der kopierten Scan-Zeilen.

Anmerkungen

Die Funktion StretchDIBits verwendet den Streckmodus des Zielgerätekontextes (gesetzt durch die Funktion SetStretchBltMode), um zu bestimmen, wie das Bitmap zu strecken oder zu stauchen ist. Beim Verkleinern von DIBs mit biBitCount <=8 führt der Standardwert häufig zu störenden Streifen.

Der Koordinatenursprung des Ziels hängt vom aktuellen Abbildungsmodus des Gerätekontextes ab. Weitere Informationen zu den Abbildungsmodi finden Sie bei der Windows API Funktion SetMapMode.

StretchDIBBlt erzeugt ein Spiegelbild des Bitmaps, wenn die Vorzeichen der Parameter dxSrc und dxDst bzw. dySrc und dyDst voneinander abweichen.

Diese Funktion akzeptiert auch eine für den Microsoft-OS/2 Presentation Manager (Versionen 1.1 und 1.2) formatierte geräteunabhängige Bitmap-Spezifikation, wenn der Parameter lpBitsInfo auf eine BITMAPCOREINFO-Datenstruktur zeigt.

Wenn die DIB eine höhere Farbtiefe (biBitCount) als das mit hDC angegebene Ausgabegerät darstellen kann, so gehen werden bei der Ausgabe auf einem Bildschirm für jedes Pixel die jeweils ähnlichsten Farben ausgewählt, bei der Ausgabe auf einen Drucker führt der Druckertreiber meist einer Dithering-Operation aus. Unter WIN32 kann Rastern durch Aufruf von SetStretchBltMode auch für den Bildschirm aktiviert werden.

Die Farbtiefenreduktion dieser Funktion basiert auf der von der Anwendung mit SelectPalette ausgewählten Farbpalette. Die Default-Palette ohne spezielle Vorgabe durch das Anwendungsprogramm umfaßt nur die standard Windows 20 Systemfarben.

Die Darstellung von RGB-DIBs mit >= 16 Bit Farbtiefe auf Palettenbasierten Ausgabegeräten erfolgt bei manchen Grafikkartentreibern ausgesprochen langsam. Die Anwendung kann die Verarbeitungsgeschwindigkeit häufig durch Verwenden der Funktion DitherTo8 beschleunigen.

Windows 16-Bit Anmerkungen

Die Funktionen StretchDIBBlt bzw. StretchBlt waren in Windows 3.1 fehlerhaft, so daß starke Verkleinerungen fehlschlugen. Anwendungen können die Leonardo-Funktionen StretchDIB bzw. StretchDIB2DIBBlt verwenden.