Wie könnte ich noch einen zusätzlichen Alphawert integrieren um die gesamte Tranzparents zu beeinflussen?
Auch noch nicht ganz klar ist mir -> was ich mit dem Alpha Kanal der ersten Farbe?
Einfach so lassen ? (Will später evtl. mehrfach Pixel kopieren - also auch c1 als Quelle verwenden.)
Code:
Code: Alles auswählen
EnableExplicit
Structure COLOR
StructureUnion
rgba.a[4]
code.l
EndStructureUnion
EndStructure
Macro mBlendAlpha(_c1_,_c2_)
_c1_\rgba[0] = ((_c2_\rgba[0] * _c2_\rgba[3]) + (_c1_\rgba[0] * (256 - _c2_\rgba[3]))) >> 8
_c1_\rgba[1] = ((_c2_\rgba[1] * _c2_\rgba[3]) + (_c1_\rgba[1] * (256 - _c2_\rgba[3]))) >> 8
_c1_\rgba[2] = ((_c2_\rgba[2] * _c2_\rgba[3]) + (_c1_\rgba[2] * (256 - _c2_\rgba[3]))) >> 8
EndMacro
Procedure.i Main()
Protected c1.COLOR;ziel
Protected c2.COLOR;quelle
c1\code = $FFFFFFFF
c2\code = $22222222
mBlendAlpha(c1,c2);mit alpha von c2 -> c2\rgb[3]
Debug "0x" + Hex(c1\code,#PB_Long)
ProcedureReturn #Null
EndProcedure
Main()
End