Mon objectif avec cet algorithme que je travaille est de produire une progression des couleurs de certaines couleurs fournies. En progression de la couleur, je veux dire créer l'effet "Fade" entre deux couleurs (couleur A, couleur B) et stocker toutes les valeurs de couleur ((r, g, b) tuple) entre les deux. p>
Par exemple, si ce qui est fourni est total noir Pour que nous soyons blanc au début et que cela se transforme progressivement en noir. Bien sûr, il est très facile avec le blanc et le noir (augmentez simplement RVB par une étape de 255 fois). Mais si je veux faire cette procédure avec deux couleurs arbitraires, comme A = (180,69,1) et B = (233,153,0) ?? P>
Note importante: Si avec hexadécimal (ou tout autre type de notation de couleur), il serait plus facile de réaliser, je pouvais également travailler avec cela aussi, précisez simplement quel type est (prendre en compte que je travaille sur PIL (Python Bibliothèque d'imagerie), donc si elle est compatible avec cela, je vais bien) p>
Évidemment, il doit être une distribution aussi voire possible, la progression doit être homogène. P>
J'ai besoin de comprendre cet algorithme afin que je puisse l'utiliser dans mon générateur fractal (Mandelbrot Set, Google IT si vous le souhaitez), il est donc important que la progression soit aussi douce que possible, pas de hoquet. p>
Merci d'avance. P> A = (0,0,0) code> et total blanc
b = (255.255.255) code> La progression résultante serait: p>
p = ((0,0,0), (1,1,1), (2,2,2), ...., (253, 253 253), (254, 254 254), (255, 255 255) < / code> p>
3 Réponses :
Convertissez vos coordonnées RVB en HSL ou HSV et entrez-les, conversant à RVB en cours de route. P>
docs.python.org/library/colorsys.html EN.Wikipedia.org/wiki/hsl_and_hsv
J'ai un problème. Je ne sais pas comment marcher entre HSL ni les couleurs HSV: /
Comment allez-vous marcher entre les couleurs RVB?
Je sais que je ne peux pas passer à travers RVB, mais pourriez-vous me dire comment passer à travers HSV ou HSL? Merci
Je voudrais simplement interpoler les valeurs RVB de manière indépendante. Voir cette thread . P>
Ma réponse à la question de la question intitulée Valeurs de plage à Pseudocolor Peut-être utile pour vous parce qu'il montre un moyen de générer un gradient de couleurs spécifique (nom commun de ce que vous appelez une progression de couleur). P>
Généralement, vous pouvez interpoler entre deux couleurs dans n'importe quel espace de courant en calculant la différence, ou la valeur delta, entre les composants de chaque couleur, puis divisez-les par le nombre d'étapes intermédiaires souhaité pour obtenir une quantité de delta fractionnée par composant à appliquer après chaque étape. p>
Ensuite, à partir de la valeur de chacun des composants de la première couleur, la quantité fractionnée correspondante peut être ajoutée à la fois pour déterminer chaque étape intermédiaire. Alternativement, l'erreur arithmétique inhérente à cette approche peut être réduite en ajoutant plutôt Je crois que c'est ce que @jim Clay dit également dans sa réponse. Si vous souhaitez un exemple de code, dites-le dans un commentaire. P> (étape_number / total_steps) * fractional_delta code> sur les valeurs de composant de couleur initiales de la couleur de départ. P>