Einzelnen Beitrag anzeigen

Medium

Registriert seit: 23. Jan 2008
3.686 Beiträge
 
Delphi 2007 Enterprise
 
#49

Re: Bitmap32 auf ZielBitmap32 malen

  Alt 1. Aug 2008, 15:58
So wird es wohl noch die einfachste Methode sein, von Hand die Transparenz abzubilden. Aus der G32-Hilfe:
Zitat von G32-Hilfe zu TBitmap32.Draw():
The version with hSrc parameter, is introduced mainly for compatibility reasons. You may use it to transfer data from bitmaps with other formats, or any other windows objects that have device handle (DC). It is based on StretchDIBits GDI call, it does not support transparency and always uses nearest neighbor interpolation when stretching.
Ich habs grad getestet: Es hilft in der Tat nicht das OnPixelCombine-Event auszutauschen und im dmCustom Mode zu zeichnen. Wenn man also auf nicht einfarbige Hintergründe transparent auf einen GDI Canvas zeichen will, so müsste man sich zu Fuß erstmal den Bereich vom Zielcanvas in zweites Bitmap32 schaufeln, dort das andere drauf blenden, und das wieder zurück werfen... Ich mag GDI irgendwie immer weniger


Was ich mit den Pufferbitmaps meinte, hat TP ja schon prima umgesetzt, so dass ich denke ich dazu nichts mehr schreiben muss. Generell stellt die Lösung von TP für deinen Fall den besten und vor allem einfachsten Kompromiss dar.

Ich muss zudem noch eine früher gemachte Aussage korrigieren: Die Sache mit der Variable Alpha. Ich hab übersehen, dass dies ein Out-Parameter der PNG-Ladefunktion ist, wodurch es völlig okay ist ihn nicht zu initialisieren. Ich dachte es wäre ein Parameter mit dem man wählen kann ob man nun den Alphakanal mitnehmen will oder nicht. Wer lesen kann ist klar im Vorteil =)


PS: Nichts für ungut in Sachen PN. Da danach hier erstmal nichts mehr passierte, nahm ich an es ginge um dieses Thema
"When one person suffers from a delusion, it is called insanity. When a million people suffer from a delusion, it is called religion." (Richard Dawkins)
  Mit Zitat antworten Zitat