Zitat:
Das ist es leider nicht, die Ausgangsbitmap hat einen "echten" Alphakanal (mit semitransparenten Pixeln).
Verstehe das Problem nicht.
Du lädst das Bitmap mit
GDI+ wenn ich das richtig verstehe.
Danach hast du ein Graphics Image <> TBitmap.
Was hält dich nun davon ab das Image zu HBitmap zu konvertieren und dieses dann zur Rotation zu verwenden.
Weder die Farben noch der Alpha Channel wird dadurch berührt da ändert sich nichts.
GDI++ ..
Nachtrag:
Mein Ansatz.
Delphi-Quellcode:
if img <> 0 then
begin
// GetImageSize(Img, ImgW, ImgH);
GdipGetImagePixelFormat(img, format);
if format = PixelFormat32bppARGB then // Accept files with alpha channel
begin
GdipCreateHBITMAPFromBitmap(pointer(img), hbmReturn, $00ff0000);
if hbmReturn <> 0 then
Result := hbmReturn;
end;
GdipDisposeImage(img);
end;
gruss