here2share

# tk_scroll_by_brightness.py

May 3rd, 2026
112
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 1.23 KB | None | 0 0
  1. # tk_scroll_by_brightness.py
  2.  
  3. import tkinter as tk
  4. from PIL import Image, ImageDraw, ImageTk
  5. import random
  6.  
  7. def brightness(rgb):
  8.     r, g, b = [x / 255.0 for x in rgb]
  9.     return 0.299 * r + 0.587 * g + 0.114 * b
  10.  
  11. steps = 10
  12. def generate_colors_sorted_by_brightness():
  13.     colors = []
  14.     for r in range(0, 256, steps):
  15.         for g in range(0, 256, steps):
  16.             for b in range(0, 256, steps):
  17.                 colors.append((r, g, b))
  18.     colors.sort(key=brightness)
  19.     return colors
  20.  
  21. root = tk.Tk()
  22. root.title("Color Loop - Sorted by Brightness")
  23. root.geometry("500x500")
  24.  
  25. canvas = tk.Canvas(root, width=500, height=500, highlightthickness=0, bg='gray')
  26. canvas.pack()
  27.  
  28. canvas_image = Image.new('RGB', (500, 500), color='gray')
  29. draw = ImageDraw.Draw(canvas_image)
  30.  
  31. colors = generate_colors_sorted_by_brightness()
  32. color_index = 0
  33. len_colors = len(colors)
  34.  
  35. while True:
  36.     color = colors[color_index]
  37.     draw.rectangle([(0, 0), (500, 3)], fill=color)
  38.  
  39.     photo_image = ImageTk.PhotoImage(canvas_image)
  40.     canvas.create_image(0, 0, image=photo_image, anchor='nw')
  41.  
  42.     color_index = (color_index + 1) % len_colors
  43.     canvas.update()
  44.  
  45.     crop_image = canvas_image.crop((0, 0, 500, 500))
  46.     canvas_image.paste(crop_image, (0, 4))
Advertisement
Add Comment
Please, Sign In to add comment