Page 1 sur 1

Dessiner sur l'alpha d'une image

Publié : mer. 16/oct./2013 20:43
par blendman
salut

Je sais gommer l'alpha d'une image, pour ça, j'utilise un code de LSi que j'ai un peu modifié :

Code : Tout sélectionner

Procedure FiltreMelangeAlpha2(x, y, SourceColor, TargetColor) ; filter To mix alpha for the eraser tool
  ; By Le Soldat inconnu
  ; modif by blendman
  If Alpha(TargetColor) - Alpha(SourceColor) >= 0    
    ProcedureReturn RGBA(Red(TargetColor), Green(TargetColor), Blue(TargetColor), Alpha(TargetColor)-Alpha(SourceColor))
  Else
    ProcedureReturn RGBA(Red(TargetColor), Green(TargetColor), Blue(TargetColor), 0)
  EndIf
EndProcedure
puis dans le startdrawing() :

Code : Tout sélectionner

      
DrawingMode(#PB_2DDrawing_CustomFilter)
CustomFilterCallback(@FiltreMelangeAlpha2())  
Avec bien sûr une couleur en RGBA().

Mais je n'arrive pas à ajouter de l'alpha sur l'image. J'ai testé pas mal de combinaison, mais je n'arrive jamais à un résultat satisfaisant ^^.

Une idée ?

EDIT :
roh, je viens de trouver ^^

Code : Tout sélectionner

 
Procedure FiltreMelangeAlpha3(x, y, SourceColor, TargetColor)
 If Alpha(TargetColor) + Alpha(SourceColor) <= 255    
    ProcedureReturn RGBA(Red(TargetColor), Green(TargetColor), Blue(TargetColor), Alpha(SourceColor)+Alpha(TargetColor))
  Else
    ProcedureReturn RGBA(Red(TargetColor), Green(TargetColor), Blue(TargetColor), 255)
  EndIf
Endprocedure