Windows-Versionen mit 16-Bit GDI (Windows 9X/ME) unterstützen keine Funktionen zum Drehen von Bildern, noch nicht einmal 90 Grad-Drehungen werden unterstützt. Die DIBRotate Funktion von Leonardo dreht DIBs um einen beliebigen Drehwinkel.
Ursprüngliches Bild: | Gedrehtes Bild (Drehwinkel 30 Grad, Hintergrundfarbe: Rot) | |
|
Die Farbe der im Beispiel roten Flächen wird durch den clBkColor-Parameter vorgegeben.
Diese Funktion ersetzt die Funktion RotateDIB von DaVinci Version 3.
Speicherbedarf:
Solange das Flag DIBROTATEF_ANTIALIAS nicht gesetzt benutzt die DIBRotate-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 dass zum Drehen eines ganzseitigen monochromen Bildes in Fax-Qualität ca. 500 KBytes Hauptspeicher für die beiden DIBs ausreichen.
Wenn das Flag DIBROTATEF_ANTIALIAS gesetzt ist, braucht die DIBRotate-Funktion zusätzlich noch die Summe aus dem vierfachen des Speicherplatzes für die Eingabe-DIB und dem vierfachen der Ausgabe-DIB für temporäre Zwischenergebnisse. Die Ausgabe-DIB kann zusätzlich eine höhere Farbtiefe aufweisen als die Eingabe-DIB, so dass der Speicherbedarf enorm anwachsen kann.
Für folgende Sonderfälle enthält die Pro-Version von DaVinci Optimierungen zur Erhöhung der Arbeitsgeschwindigkeit:
• |
Drehen von monochromen DIBs (biBitCount =1) um +90, -90 oder 180°. |
• |
Drehen von DIBs mit biBitCount =8 um +90 oder -90° wenn der Prozessor Unterstützung für SSE2 Instruktionen bietet. |
• |
Drehen von DIBs mit biBitCount >=8 um +90, -90 oder 180°. |
• |
Drehen von DIBs mit beliebiger Farbtiefe um +90°, -90°. |