remplacer la couleur dans une image en c#
Quel est le chemin en C# pour remplacer une couleur pour certaines parties d'une image sans affecter sa texture?
Vous pouvez voir un bon exemple de résultat ici
Grâce
Vous devez vous connecter pour publier un commentaire.
Un moyen efficace de remplacer une couleur est d'utiliser un remappage de la table. Dans l'exemple suivant, une image est tirée à l'intérieur d'une zone de l'image. Dans l'événement de Peinture, la couleur de la Couleur.Le noir est changé de Couleur.Bleu:
Plus d'informations: http://msdn.microsoft.com/en-us/library/4b4dc1kz%28v=vs.110%29.aspx
essayez ceci:
GetPixel
est très lent, voir: stackoverflow.com/questions/4235731/...Trouvé le moyen de le faire, cela nécessite RGB<->HSL conversions (bonne classe pour la couleur HSL peut être trouvé ici)
1. Obtenir une valeur de référence (en hsl), représentant la couleur que vous souhaitez remplacer
2. Obtenir la lgv valeur pour votre cible, de couleur
3. Obtenir les pixels de l'image et pour chaque pixel:
4. calculer la lgv valeur du pixel, et de le remplacer avec de l' (pixelHsl /refHsl) * targetHsl
Ce fait le travail pour moi, merci pour tous ceux qui ont contribué
Essayer à la lecture de tous les pixels et les farcir dans un 3 du tableau (rvb) vous pouvez définir dans un alogrithm pour remplacer vos couleurs.
En faisant des recherches je n'ai pas trouvé efficace/lisser façon de faire cela, donc je n'ai pas moi-même, le code peut être nettoyé BEAUCOUP, mais il fait le travail, il n'est pas efficace, mais il est plus souple et permet de définir une tolérance.