Public Shared Sub Colorize(ByRef bmp As Drawing.Bitmap, ByVal ColorizingColor As Color)
For x As Integer = 0 To bmp.Width - 1
For y As Integer = 0 To bmp.Height - 1
Dim c As Color = bmp.GetPixel(x, y)
c.GetBrightness()
Dim r As Integer = c.GetBrightness * ColorizingColor.R
Dim g As Integer = c.GetBrightness * ColorizingColor.G
Dim b As Integer = c.GetBrightness * ColorizingColor.B
Dim nc As Color = Color.FromArgb(r, g, b)
bmp.SetPixel(x, y, nc)
Next
Next
End Sub
Il permet de "coloriser" une image, seulement si je colorise avec une couleur apres avec une autre et encore une autre l'image devient de plus en plus sombre. Avec Gimp ou photoshop, la clarté de l'image reste là même après colorization ça ne change pas le niveau de gris.
Comment y remédier pour garder le meme niveau gris/alpha pour ne pas perdre la clarté de l'image ?
Non, vous n'avez pas compris, je me ré explique, mon code permet de faire une monochromie avec la couleur choisie. J'ai réussi à le faire c'est donc le code que je vous ai montré, seulement si je répète plusieurs fois l'action l'image deviens de plus en plus sombre, je voudrais préserver la luminosité d'origine.
Bon, je pense avoir compris, si ta "ColorizingColor" est plus sombre que le blanc pétant, tu a l'effet que tu nous dis.
Pour cela, effectue un calcul entre la luminosité moyenne de l'image et la luminosité de "ColorizingColor" et ensuite applique le coefficient de correction.