Je suis en train de dessiner sur une image en utilisant un modèle, l'image modèle est la suivanteGo dessiner sur l'image masque
Je veux coloriser l'image couleurs rouge, vert, bleu et jaune avec couleurs personnalisées et de réaliser quelque chose comme ceci:
pour y parvenir, j'utilise actuellement cette image comme base
Et puis dessiner sur le modèle en utilisant draw.Draw(outfitImage, outfitImage.Bounds(), generatorImage, image.ZP, draw.Over)
Cela donne cependant un résultat très bizarre (rien à proximité du résultat attendu), voici comment je remplace pixels
func paintPixels(img *image.NRGBA, base color.Color, dst color.Color) {
br, bg, bb, ba := base.RGBA()
dr, dg, db, _ := dst.RGBA()
for x := 0; x < img.Bounds().Dx(); x++ {
for y := 0; y < img.Bounds().Dy(); y++ {
r, g, b, a := img.At(x, y).RGBA()
if br == r && bg == g && bb == b && ba == a {
img.Set(x, y, color.RGBA{uint8(dr), uint8(dg), uint8(db), 255})
}
}
}
}
Le résultat peut varier en fonction de la valeur alpha utilisée lors de la coloration du modèle d'image. Donc, je ne peux pas penser à un moyen d'atteindre le résultat attendu, je suppose que je devrais utiliser un masque avec draw.DrawMask
mais je n'ai aucune idée par où commencer ou comment atteindre le résultat que je cherche