Code: Alles auswählen
Procedure.l Multiply(r1val.a,g1val.a,b1val.a,r2val.a,g2val.a,b2val.a)
Protected calculatedR.i, calculatedG.i, calculatedB.i
calculatedR = (r1val * r2val)/255
If calculatedR > 255 : calculatedR = 255 : EndIf
calculatedG = (g1val * g2val)/255
If calculatedG > 255 : calculatedG = 255 : EndIf
calculatedB = (b1val * b2val)/255
If calculatedB > 255 : calculatedB = 255 : EndIf
ProcedureReturn RGB(calculatedR,calculatedG,calculatedB)
EndProcedure
Procedure.l Division(r1val.a,g1val.a,b1val.a,r2val.a,g2val.a,b2val.a)
Protected calculatedR.i, calculatedG.i, calculatedB.i
calculatedR = (r1val*256)/(r2val+1)
If calculatedR > 255 : calculatedR = 255 : EndIf
calculatedG = (g1val*256)/(g2val+1)
If calculatedG > 255 : calculatedG = 255 : EndIf
calculatedB = (b1val*256)/(b2val+1)
If calculatedB > 255 : calculatedB = 255 : EndIf
ProcedureReturn RGB(calculatedR,calculatedG,calculatedB)
EndProcedure
Procedure.l Bildschirm(r1val.a,g1val.a,b1val.a,r2val.a,g2val.a,b2val.a)
Protected calculatedR.i, calculatedG.i, calculatedB.i
calculatedR = 255-(((255-r1val)*(255-r2val))/255)
If calculatedR > 255 : calculatedR = 255 : EndIf
calculatedG = 255-(((255-g1val)*(255-g2val))/255)
If calculatedG > 255 : calculatedG = 255 : EndIf
calculatedB = 255-(((255-b1val)*(255-b2val))/255)
If calculatedB > 255 : calculatedB = 255 : EndIf
ProcedureReturn RGB(calculatedR,calculatedG,calculatedB)
EndProcedure
Procedure.l Addition(r1val.a,g1val.a,b1val.a,r2val.a,g2val.a,b2val.a)
Protected calculatedR.i, calculatedG.i, calculatedB.i
calculatedR = r1val+r2val
If calculatedR > 255 : calculatedR = 255 : EndIf
calculatedG = g1val+g2val
If calculatedG > 255 : calculatedG = 255 : EndIf
calculatedB = b1val+b2val
If calculatedB > 255 : calculatedB = 255 : EndIf
ProcedureReturn RGB(calculatedR,calculatedG,calculatedB)
EndProcedure
Procedure.l Subtraction(r1val.a,g1val.a,b1val.a,r2val.a,g2val.a,b2val.a)
Protected calculatedR.i, calculatedG.i, calculatedB.i
calculatedR = r1val-r2val
If calculatedR < 0 : calculatedR = 0 : EndIf
calculatedG = g1val-g2val
If calculatedG < 0 : calculatedG = 0 : EndIf
calculatedB = b1val-b2val
If calculatedB < 0 : calculatedB = 0 : EndIf
ProcedureReturn RGB(calculatedR,calculatedG,calculatedB)
EndProcedure
Procedure.l Overlay(r1val.a,g1val.a,b1val.a,r2val.a,g2val.a,b2val.a)
Protected calculatedR.i, calculatedG.i, calculatedB.i
calculatedR = (r2val/255)*(r2val+((2*r1val)/255)*(255-r2val))
If calculatedR > 255 : calculatedR = 255 : EndIf
calculatedG = (g2val/255)*(g2val+((2*g1val)/255)*(255-g2val))
If calculatedG > 255 : calculatedG = 255 : EndIf
calculatedB = (b2val/255)*(b2val+((2*b1val)/255)*(255-b2val))
If calculatedB > 255 : calculatedB = 255 : EndIf
ProcedureReturn RGB(calculatedR,calculatedG,calculatedB)
EndProcedure
Procedure.l FaserExtract(r1val.a,g1val.a,b1val.a,r2val.a,g2val.a,b2val.a)
Protected calculatedR.i, calculatedG.i, calculatedB.i
calculatedR = r2val-r1val+128
If calculatedR > 255 : calculatedR = 255 : EndIf
calculatedG = g2val-g1val+128
If calculatedG > 255 : calculatedG = 255 : EndIf
calculatedB = b2val-b1val+128
If calculatedB > 255 : calculatedB = 255 : EndIf
ProcedureReturn RGB(calculatedR,calculatedG,calculatedB)
EndProcedure
Procedure.l FaserMix(r1val.a,g1val.a,b1val.a,r2val.a,g2val.a,b2val.a)
Protected calculatedR.i, calculatedG.i, calculatedB.i
calculatedR = r2val+r1val-128
If calculatedR > 255 : calculatedR = 255 : EndIf
calculatedG = g2val+g1val-128
If calculatedG > 255 : calculatedG = 255 : EndIf
calculatedB = b2val+b1val-128
If calculatedB > 255 : calculatedB = 255 : EndIf
ProcedureReturn RGB(calculatedR,calculatedG,calculatedB)
EndProcedure