Advertisement
namecantbebl0nk

two-colour gradient

Feb 27th, 2025 (edited)
49
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.00 KB | None | 0 0
  1. import numpy as np
  2.  
  3. def hex_to_rgb(hex_color):
  4. hex_color = hex_color.lstrip("#")
  5. return tuple(int(hex_color[i:i+2], 16) for i in (0, 2, 4))
  6.  
  7. def generate_multi_gradient_text(sentence, hex_colors):
  8. num_colors = len(sentence)
  9. color_points = np.linspace(0, num_colors - 1, len(hex_colors), dtype=int)
  10.  
  11. r_values = np.interp(range(num_colors), color_points, [hex_to_rgb(c)[0] for c in hex_colors]).astype(int)
  12. g_values = np.interp(range(num_colors), color_points, [hex_to_rgb(c)[1] for c in hex_colors]).astype(int)
  13. b_values = np.interp(range(num_colors), color_points, [hex_to_rgb(c)[2] for c in hex_colors]).astype(int)
  14.  
  15. return "".join(
  16. f"[COLOR=rgb({r},{g},{b})]{char}[/COLOR]"
  17. for char, r, g, b in zip(sentence, r_values, g_values, b_values)
  18. )
  19.  
  20. sentence = "this is a rainbow colours"
  21. hex_colors = ["#FF0000", "#FFFF00", "#00FF00", "#00FFFF", "#8B00FF"]
  22.  
  23. colored_text = generate_multi_gradient_text(sentence, hex_colors)
  24. print(colored_text)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement