here2share

# tk_bruteforce_images.py

Jul 6th, 2026
107
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 2.26 KB | None | 0 0
  1. # tk_bruteforce_images.py
  2.  
  3. import tkinter as tk
  4. from PIL import Image, ImageTk, ImageFilter
  5.  
  6. WW, HH = 600, 600
  7.  
  8. root = tk.Tk()
  9. canvas = tk.Canvas(root, width=WW, height=HH)
  10. root.geometry("%dx%d+10+10" % (WW, HH))
  11. canvas.pack()
  12.  
  13. base = {
  14.     (0, 0): (255, 255, 255),   (0, 1): (255, 255,   0),   (0, 2): (0, 255,   0),
  15.     (1, 0): (255, 165,   0),   (1, 1): (128, 128, 128),   (1, 2): (0,   0, 255),
  16.     (2, 0): (255,   0,   0),   (2, 1): (128,   0, 128),   (2, 2): (0,   0,   0)
  17. }
  18.  
  19. def lerp(a, b, t):
  20.     return a + (b - a) * t
  21.  
  22. grid_colors = {}
  23.  
  24. for i in range(7):
  25.     for j in range(7):
  26.         x = i * 2 / 6
  27.         y = j * 2 / 6
  28.  
  29.         x0 = int(x)
  30.         y0 = int(y)
  31.         x1 = min(2, x0 + 1)
  32.         y1 = min(2, y0 + 1)
  33.  
  34.         tx = x - x0
  35.         ty = y - y0
  36.  
  37.         c00 = base[(x0, y0)]
  38.         c10 = base[(x1, y0)]
  39.         c01 = base[(x0, y1)]
  40.         c11 = base[(x1, y1)]
  41.  
  42.         final = []
  43.         for k in range(3):
  44.             top = lerp(c00[k], c10[k], tx)
  45.             bot = lerp(c01[k], c11[k], tx)
  46.             val = lerp(top, bot, ty)
  47.             final.append(int(val))
  48.  
  49.         grid_colors[(i, j)] = tuple(final)
  50.  
  51. img = Image.new("RGB", (7, 7))
  52.  
  53. for i in range(7):
  54.     for j in range(7):
  55.         img.putpixel((i, j), grid_colors[i, j])
  56.  
  57. def draw_img(img, radius=67):
  58.     img0 = img.resize((600, 600), Image.BILINEAR)
  59.     img0 = img0.filter(ImageFilter.GaussianBlur(radius))
  60.     photo = ImageTk.PhotoImage(img0)
  61.     canvas.image = photo
  62.     canvas.create_image(0, 0, anchor="nw", image=photo)
  63.     canvas.update()
  64.    
  65. def diagonal_gradient(W, H):
  66.     diagonal_indices = []
  67.     for s in range(W + H - 1):
  68.         for r in range(H):
  69.             c = s - r
  70.             if 0 <= c < W:
  71.                 diagonal_indices.append((c, r))
  72.     return diagonal_indices
  73.        
  74. img = img.resize((100, 100), Image.BILINEAR)
  75. draw_img(img)
  76.  
  77. pixel_list = list(img.getdata())
  78. gradient_cache = {}
  79. for i in range(len(pixel_list) - 1):
  80.     current_rgb = pixel_list[i]
  81.     next_rgb = pixel_list[i + 1]
  82.     gradient_cache[current_rgb] = next_rgb
  83. gradient_cache[pixel_list[-1]] = pixel_list[0]
  84.  
  85. last_color = pixel_list[-1]
  86.  
  87. grid = list(diagonal_gradient(100, 100))
  88.  
  89. count = 1
  90. while True:
  91.     for x, y in grid[:count]:
  92.         color = img.getpixel((x, y))
  93.         img.putpixel((x, y), gradient_cache[color])
  94.     draw_img(img, 5)
  95.     count += 1
  96.    
  97.     if count >= len(grid):
  98.         count = 1
  99.  
Advertisement
Add Comment
Please, Sign In to add comment