Combinaison de deux couleurs (AlphaBlend)

Contenu du snippet

Private Type RGBAL
    a As Long
End Type

Private Type RGBAB
    r As Byte
    g As Byte
    b As Byte
    a As Byte
End Type

Function BlendColor(ByVal Src0 As Long, ByVal Src1 As Long, ByVal Alpha As Byte) As Long
    Dim v0 As Single
    Dim v1 As Single
    Dim p0 As RGBAB
    Dim p1 As RGBAB
    Dim t0 As RGBAL
    Dim t1 As RGBAL
    
    t0.a = Src0
    t1.a = Src1
    
    LSet p0 = t0
    LSet p1 = t1
    
    v0 = Alpha / 255
    v1 = 1 - v0
    
    p0.r = p0.r * v0 + p1.r * v1
    p0.g = p0.g * v0 + p1.g * v1
    p0.b = p0.b * v0 + p1.b * v1

    LSet t0 = p0
    BlendColor = t0.a
End Function



Compatibilité : VB6, VBA

Disponible dans d'autres langages :

A voir également

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.