Maison >Java >javaDidacticiel >Comment puis-je générer un large ensemble de couleurs visuellement distinctes ?

Comment puis-je générer un large ensemble de couleurs visuellement distinctes ?

Susan Sarandon
Susan Sarandonoriginal
2024-10-31 12:04:31632parcourir

How Can I Generate a Large Set of Visually Distinct Colors?

Génération automatique de couleurs distinctes

Lors de la génération d'un grand nombre de couleurs, trouver des moyens de garantir qu'elles sont visuellement différentes peut être un défi. L'exploration des approches existantes est essentielle.

Subdivision uniforme du cube RVB :

Cette méthode divise le cube RVB en sections discrètes et sélectionne les couleurs de ces zones. Il peut produire une échelle progressive, mais pour de grands nombres, les couleurs peuvent paraître similaires.

Utilisation de listes prédéfinies :

Les listes de couleurs telles que celles de Boynton ou de Kelly fournissent des couleurs présélectionnées avec contraste élevé, éliminant le besoin d'algorithmes.

Méthodes basées sur des algorithmes :

Divers algorithmes ont été développés pour sélectionner des couleurs distinctes. Ceux-ci incluent :

  • Affichages couleur pour les images catégorielles : Fournit une palette de 11 couleurs reconnaissables aux téléspectateurs ayant une déficience de la vision des couleurs.
  • UN SERVICE WEB POUR PERSONNALISER LA COULEUR DE LA CARTE : propose un service Web pour générer des ensembles de couleurs personnalisés.
  • Un algorithme pour la sélection d'ensembles de couleurs à contraste élevé : propose un algorithme pour trouver des couleurs contrastées.
  • Ensembles de couleurs à contraste élevé : présente le premier algorithme pour ce problème.

Conversion en RVB :

Si les couleurs ne sont pas spécifiées au format RVB, vous devrez peut-être les convertir à l'aide de ressources telles que :

  • http://chem8.org/uch/space-55036-do-blog-id- 5333.html
  • https://metacpan.org/pod/Color::Library::Dictionary::NBS_ISCC
  • Théorie des couleurs : comment convertir Munsell HVC en RVB/HSB/HSL

Exemples de code :

Code C# pour la liste optimisée de Boynton :

public static readonly List<Color> _boyntonOptimized = new List<Color>
{
    Color.FromArgb(0, 0, 255),      //Blue
    Color.FromArgb(255, 0, 0),      //Red
    Color.FromArgb(0, 255, 0),      //Green
    Color.FromArgb(255, 255, 0),    //Yellow
    Color.FromArgb(255, 0, 255),    //Magenta
    Color.FromArgb(255, 128, 128),  //Pink
    Color.FromArgb(128, 128, 128),  //Gray
    Color.FromArgb(128, 0, 0),      //Brown
    Color.FromArgb(255, 128, 0),    //Orange
};

Code JavaFX pour les couleurs de Kelly :

private static final Color[] KELLY_COLORS = {
    Color.web("0xFFB300"),    // Vivid Yellow
    Color.web("0x803E75"),    // Strong Purple
    Color.web("0xFF6800"),    // Vivid Orange
    Color.web("0xA6BDD7"),    // Very Light Blue
    Color.web("0xC10020"),    // Vivid Red
    Color.web("0xCEA262"),    // Grayish Yellow
    Color.web("0x817066"),    // Medium Gray

    Color.web("0x007D34"),    // Vivid Green
    Color.web("0xF6768E"),    // Strong Purplish Pink
    Color.web("0x00538A"),    // Strong Blue
    Color.web("0xFF7A5C"),    // Strong Yellowish Pink
    Color.web("0x53377A"),    // Strong Violet
    Color.web("0xFF8E00"),    // Vivid Orange Yellow
    Color.web("0xB32851"),    // Strong Purplish Red
    Color.web("0xF4C800"),    // Vivid Greenish Yellow
    Color.web("0x7F180D"),    // Strong Reddish Brown
    Color.web("0x93AA00"),    // Vivid Yellowish Green
    Color.web("0x593315"),    // Deep Yellowish Brown
    Color.web("0xF13A13"),    // Vivid Reddish Orange
    Color.web("0x232C16"),    // Dark Olive Green
};

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn