Einzelnen Beitrag anzeigen

EWeiss
(Gast)

n/a Beiträge
 
#7

AW: GDI+ Bilddrehung mit Transparenz

  Alt 27. Feb 2019, 19:26
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

Geändert von EWeiss (11. Jul 2019 um 16:55 Uhr)
  Mit Zitat antworten Zitat