Jag ska rita ut ett par (PNG-)bilder på varandra, och de ska således vara semitransparenta. Mängden genomskinlighet på de olika bilderna ska dock skifta under exekvering, så jag kan inte lösa det genom att använda mig av PNG:s semitransparens. Vad jag skulle behöva är alltså ett sätt att justera alfanivån på en Image (eller liknande). Går detta att lösa med GDI+ eller får man lov att gå över till DirectX för att fixa det?
Ja, det var tämligen okomplicerat, exempelkoden i länken jag postade gjorde prexis vad jag ville:
Skapa en ColorMatrix och sätt medlem[3, 3] till en float mellan 0 och 1 för alfavärdet.
Stoppa in denna ColorMatrix i en ImageAttributes
Rita ut din Image med den DrawImage-överlagring som tar emot en ImageAttributes.
Funkar bra. Är inte snabbt ;) Vill man rita ut flera bilder på varann rekommenderar jag varmt att man använder en intermediär Image vars Graphics man ritar ut på... eller så går man och hämtar kaffe medan det ritas ut...
247 ms totalt · 4 externa anrop · v20260731065814-full.1dc6f849