Die Leonardo-Funktion ConvertDIB konvertiert eine DIB mit 1,4,8,16,24,32 oder 48 Bit Farbtiefe in eine DIB mit einer von der Applikation gewünschten Farbtiefe. DIBs mit 32-Bit lassen sich besonders einfach und schnell verarbeiten.
BOOL WINAPI ConvertDIB( |
||
HDIB FAR * |
lphdib, |
|
UINT |
uNewBitCount, |
|
DWORD |
dwReserved); |
lphdib |
HDIB FAR * |
Zeiger auf eine Variable vom Typ HDIB, die beim Aufruf das Handle der Quell-DIB und bei der Rückkehr das Handle der Ziel-DIB enthält. |
uNewBitCount |
UINT |
Neue gewünschte Farbtiefe für die DIB (1,4,8,16,24,32 oder 48) |
dwReserved |
DWORD |
Reserviert zur zukünftigen Benutzung. Anwendungsprogramme müssen hier 0 angeben. |
Rückgabewert: |
TRUE |
Die Umwandlung war erfolgreich |
FALSE |
Die Umwandlung ist gescheitert. Wahrscheinlich stand nicht genügend Hauptspeicher zur Verfügung |
Anmerkungen: |
|
Der Wert des Handles wird bei der Rückkehr durch den Wert der Ergebnis-DIB ersetzt. Da die Transformation "in-place" durchgeführt wird, darf das original-Handle nach der Transformation nicht mehr verwendet werden. Es darf auch nicht durch Aufruf von "GlobalFree" gelöscht werden! Die Ergebnis-DIB wird in vielen Fällen denselben Handle-Wert aufweisen wie die Quell-DIB, aber nicht immer! |
|
Anforderungen an die Quell-DIB: |
• |
Eingabeformate mit 1,4,8,16,24 oder 48 Bit Farbtiefe |
• |
Keine RLE-Kompression (biCompression=BI_RGB) |
• |
Windows-Bitmap, keine OS/2 Bitmaps (biSize == sizeof(BITMAPINFOHEADER) ) oder Bottom-Up DIB (biHeight>0) |
Für folgende Sonderfälle enthält die Pro-Version von DaVinci Optimierungen zur Erhöhung der Arbeitsgeschwindigkeit: |
• |
Die Konvertierung in DIBs mit 32 Bit Farbtiefe erfolgt in-place, d.h. es wird kein zusätzlicher Speicherplatz für den Kopiervorgang benötigt. Der Programmcode ist auf Ausführungsgeschwindigkeit optimiert. |