Einzelnen Beitrag anzeigen

berens

Registriert seit: 3. Sep 2004
434 Beiträge
 
Delphi 10.4 Sydney
 
#29

AW: Bilder [mit/ohne Transparenz] in universelles Format bringen

  Alt 17. Aug 2016, 11:34
Ok, einen essenziellen Fehler habe ich gefunden, der letztentlich auch erklären würde, warum die komplette Aktion mit TBitmap vielleicht nicht funktioniert hat:
Wenn ich nun eine nicht-transparente Graphik lade, wird Diese unter keinen Umständen angezeigt. K.a. warum mir das gestern Abend nicht aufgefallen ist.

Ich habe nun den Loader wie folgt angepasst:
Delphi-Quellcode:
   bmp32 := TBitmap32.Create;
   bmp32.Width := TexturWidth;
   bmp32.Height := TexturHeight;
   bmp32.Canvas.StretchDraw(Rect(0, 0, ImageWidth, ImageHeight), tmpPicture.Graphic);
   if not tmpPicture.Graphic.Transparent then begin
     bmp32.ResetAlpha;
   end;

   AssignFromBitmap(bmp32);
Auf den ersten Blick scheint mir Graphic.Transparent tatsächlich zuverlässig zu sagen, ob die geladene Datei mit oder ohne Transparenzinformationen kommt. Zumindest ein .bmp, .png-mit und .png-ohne hat er korrekt unterschieden. Wenn nun also eine Graphik ohne Alpha kommt, wird mit .ResetAlpha jeder Pixel auf "sichtbar" gesetzt. Scheint aktuell zu klappen?

Für die Schönheit und den Seelenfrieden der Community habe ich übrigen endlich TImage durch TPicture ausgetauscht
Delphi 10.4 32-Bit auf Windows 10 Pro 64-Bit, ehem. Delphi 2010 32-Bit auf Windows 10 Pro 64-Bit
  Mit Zitat antworten Zitat