| Herd Software Entwicklung
|=
DaVinci Grafikbibliothek
|==
DaVinci Dokumentation Home Search Order


Leonardo: Funktion Funktion RotateDIB (Drehen)

16-Bit-Fassungen von Windows unterstützen keine Funktionen zum Drehen von Bildern, noch nicht einmal 90 Grad-Drehungen werden unterstützt. Die RotateDIB-Funktion von Leonardo dreht DIBs um einen beliebigen Drehwinkel.

HDIB FAR PASCAL RotateDIB(
HDIB hDIB,
int Angle,
COLORREF clBkColor);

hDIB Handle der Quell-DIB. Es darf sich um eine DIB mit 1,4,8 oder 24 Bit Farbtiefe handeln.

Das übergebene Handle bleibt gültig.

Angle Ein Ganzzahl-Wert, der den Drehwinkel in 1/10 Grad angibt, d.h. 900 für eine Vierteldrehung. Der Drehwinkel ist in mathematischer Drehrichtung definiert: Positive Werte drehen nach links.

clBkColor Farbe für die beim Drehen neu entstehenden Bereiche.

Falls eine Drehwinkel <> 90, 180, 270 Grad angegeben wird, so entsteht beim Drehen eine größere Bitmap als das Original. clBkColor gibt die Farbe der neuen Bildpunkte an (0xFFFFFF für Weiß).

Vergleiche Windows API RGB-Makro und COLORREF bzw TColorRef Typ..

Rückgabewert:

Der Rückgabewert gibt das Handle der neu erstellten DIB an. Er ist NULL, falls die Funktion nicht erfolgreich ausgeführt werden konnte. Das Handle muß von der Applikation mit der Funktion GlobalFree wieder freigegeben werden.

Die zurückgelieferte DIB hat dieselbe Farbauflösung und Farbpalette wie die Quell-DIB.

Anmerkungen:

Diese Leonardo-Funktion basiert auf der Leonardo-Funktion TransformDIB. TransformDIB ist flexibler und erlaubt dank der Callback-Technologie auch die Pflege eines Fortschrittsbalkens aus Ihrer Anwendung.

Beim Drehen um einen Winkel, der nicht vielfaches von 90 Grad ist, kann die Größe der DIB sich erheblich ändern.

Ursprüngliches Bild: Gedrehtes Bild (Drehwinkel 30 Grad, Hintergrundfarbe: Rot)

Die Farbe der im Beispiel roten Flächen wird durch den clBkColor-Parameter vorgegeben.

Speicherbedarf:

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

DIBs mit 1 Bit Farbtiefe können direkt verarbeitet werden, so daß zum Drehen eines ganzseitigen monochromen Bildes in Fax-Qualität ca. 500 KBytes Hauptspeicher für die beiden DIBs ausreichen.

Optimierungen:

Für folgende Sonderfälle enthält die Pro-Version von DaVinci Optimierungen zur Erhöhung der Arbeitsgeschwindigkeit: