Der "falsche" Fehlercode kommt wohl daher, dass ich
GDI+ nicht initialisiert hatte. Jetzt klappt es mit dem Erzeugen durch
GdipCreateBitmapFromHBITMAP()
. Der Status passt und der Pointer auf das Image ist nicht mehr
nil
.
Allerdings erhalt ich nun beim Aufruf von
GdipImageRotateFlip
als Status-Rückmeldung
InvalidParameter
wobei folgendes definiert ist:
Delphi-Quellcode:
Type
RotateFlipType= (RotateNoneFlipNone = 0,
Rotate90FlipNone = 1,
Rotate180FlipNone = 2,
Rotate270FlipNone = 3,
RotateNoneFlipX = 4,
Rotate90FlipX = 5,
Rotate180FlipX = 6,
Rotate270FlipX = 7,
RotateNoneFlipY = Rotate180FlipX,
Rotate90FlipY = Rotate270FlipX,
Rotate180FlipY = RotateNoneFlipX,
Rotate270FlipY = Rotate90FlipX,
RotateNoneFlipXY = Rotate180FlipNone,
Rotate90FlipXY = Rotate270FlipNone,
Rotate180FlipXY = RotateNoneFlipNone,
Rotate270FlipXY = Rotate90FlipNone);
Status = (Ok, GenericError, InvalidParameter, OutOfMemory,
ObjectBusy, InsufficientBuffer, NotImplemented,
Win32Error, WrongState, Aborted, FileNotFound,
ValueOverflow, AccessDenied, UnknownImageFormat,
FontFamilyNotFound, FontStyleNotFound,
NotTrueTypeFont, UnsupportedGdiplusVersion,
GdiplusNotInitialized, PropertyNotFound,
PropertyNotSupported);
TStatus = Status;
GpStatus = TStatus;
Auch das stammt nicht von mir, sondern ist ein Ausschnitt aus der von mir bereits zitierten
Unit.
Was mache ich denn nun wieder falsch?
Mein Ziel ist es nachwievor, einfach nur ein TBitmap herzunehmen, in ein
GDI+Bild umzuwandeln, dieses zu drehen und dann wieder in ein TBitmap zurückzuwandeln.