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 staucht 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 ipImportInd 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 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 Windows NT/2000/XP kann Rastern durch Aufruf von SetStretchBltMode mit dem Wert HALFTONE 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 GDI Anmerkungen |
||
Die Funktionen StretchDIBBlt bzw. StretchBlt waren in Windows 3.1/3.11/95/98/ME fehlerhaft, so dass starke Verkleinerungen fehlschlugen. Anwendungen können die Leonardo-Funktionen StretchDIB bzw. StretchDIB2DIBBlt verwenden. |