Directory Contents Search <<


DaVinci 4: Leonardo: Funktion DIBAlphaBlend

Kopiert einen Ausschnitt aus einer Quell-DIB in eine Ziel-DIB ähnlich der Funktion StretchDIB2DIBBlt und der Windows API-Funktion StretchDIBits, es wird aber der Alpha-Kanal der Quell-DIB berücksichtigt, ähnlich der Windows 98 und Windows NT 5.0 Funktion AlphaBlend.

BOOL FAR PASCAL DIBAlphaBlend (

HDIB

hdibDst,

int

xDst,

int

yDst,

int

dxDst,

int

dyDst,

HDIB

hdibSrc,

int

xSrc,

int

ySrc,

int

dxSrc,

int

dySrc,

int

iGlobalAlpha):

hdibDst

Handle der Ziel-DIB. Es darf sich um eine DIB mit 24 oder 32 Bit Farbtiefe handeln.

Das übergebene Handle bleibt gültig,

xDst, yDst

linke untere Koordinate des Rechtecks in der Ziel-DIB,

dxDst, dyDst

Größe des Rechtecks in der Ziel-DIB,

hdibSrc

Handle der Quell-DIB. Es darf sich um eine DIB mit 24 oder 32 Bit Farbtiefe handeln,

Das übergebene Handle bleibt gültig,

xDst, yDst

linke untere Koordinate des Rechtecks in der Quell-DIB,

dxDst, dyDst

Größe des Rechtecks in der Quell-DIB,

iGlobalAlpha

Alpha-Wert 0..255 der für jedes Pixel der Quell-DIB zusätzlich zum Alpha-Kanal berücksichtigt werden soll.

Rückgabewert:

Der Rückgabewert ist bei erfolgreicher Ausführung der Funktion ungleich 0.

Voraussetzungen:

Falls die Quell-DIB im Parameter hdibSrc keine RGBA-DIB ist, wird dennoch der Wert iGlobalAlpha berücksichtigt.

Die Ziel-DIB muss eine DIB mit biBitCount = 24 oder 32 Bit sein. Die Anwendung kann die Funktionen ConvertDIB und CopyHandle benutzen, um DIBs in anderen Datenformaten entsprechend zu konvertieren.

Das Quell- und Zielrechteck der Funktion müssen vollständig innerhalb der entsprechenden DIB liegen.

DIBAlphaBlend kann Dehnen und Stauchen, aber nicht Spiegeln, d.h. dxDst, dyDst, dxSrc und dySrc müssen größer als 0 sein.

Treffen die oben genannten Bedingungen nicht zu, so ruft DIBAlphaBlend die Funktion StretchDIB2DIBBlt auf und der Kopiervorgang erfolgt ohne Transparenz.

Speicherbedarf:

Die DIBAlphaBlend -Routine benutzt nur sehr kleine temporäre Speicherblöcke. Der Speicherbedarf wird nahezu ausschließlich von den Eingabe und Ausgabe-DIBs bestimmt.

Arbeitsgeschwindigkeit:

Die Arbeitsgeschwindigkeit dieser Funktion wird nahezu ausschließlich von der Größe des Zielrechtecks definiert, durch die Parameter dxDst und dyDst bestimmt. Die Anzeige einer großen Bitmap in einem kleinen Fenster erfolgt mit dieser Funktion schnell.

Anmerkungen:

Windows 98 und Windows NT 5.0 enthalten eine GDI Funktion AlphaBlend, mit denen ein ähnliches Resultat erzeugt werden kann, bei entsprechender Hardware-Unterstützung durch die Grafikkarte unter Umständen erheblich schneller.

DirectX stellt ebenfalls eine solche Funktionalität zur Verfügung.

Siehe Auch:

Struktur BITMAPV4HEADER

Übersicht RGBA-Grafiken

Funktion StretchDIB2DIBBlt

-


Valid HTML 4.01!