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: |
||