Directory Contents Search << >>


DaVinci 4: 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 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.

-


Valid HTML 4.01!