Advertisement
Guest User

Autodraw

a guest
Apr 1st, 2019
9,480
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 2.13 KB | None | 0 0
  1. #>_ LiterallySatan
  2.  
  3. import pyautogui
  4. import math
  5. from PIL import Image
  6.  
  7. offset = [426, 320+2] #obere linke ecke des zeichenfeldes
  8. offsetPalette = [1100,932] #mitte der ersten farbe
  9. stepPalette = 12 #breite der einzelnen paletten flächen
  10. step = 4 #abstand der einzelnen "pixel"
  11.  
  12. pyautogui.PAUSE = 0.02 #zeit pro klick (viel mehr als 50hz führt zu problemen) dadurch braucht das zeichnen eine gewisse weile
  13.  
  14. lastColor = 32
  15.  
  16.  
  17. palette = [[214,160,144], #farben der palette
  18.            [254,59,30],
  19.            [161,44,50],
  20.            [250,47,122],
  21.            [251,159,218],
  22.            [230,28,247],
  23.            [153,47,124],
  24.            [71,1,31],
  25.            [5,17,85],
  26.            [79,2,236],
  27.            [45,105,203],
  28.            [0,166,238],
  29.            [111,235,255],
  30.            [8,162,154],
  31.            [42,102,106],
  32.            [6,54,25],
  33.            [0,0,0],
  34.            [74,53,87],
  35.            [142,123,164],
  36.            [183,192,255],
  37.            [255,255,255],
  38.            [172,190,156],
  39.            [130,124,122],
  40.            [90,59,28],
  41.            [174,101,7],
  42.            [247,170,48],
  43.            [244,234,92],
  44.            [155,149,0],
  45.            [86,98,4],
  46.            [17,170,59],
  47.            [81,225,19],
  48.            [8,253,204]]
  49.            
  50. def minValueID(values):
  51.     minValue = values[0]
  52.     minID = 0
  53.     for i in range(len(values)):
  54.         if (values[i] < minValue):
  55.             minValue = values[i]
  56.             minID = i
  57.     return minID
  58.            
  59. def mapColor(color):
  60.     distances = []
  61.     for paletteColor in palette:
  62.         distances.append(math.sqrt((paletteColor[0]-color[0])**2+(paletteColor[1]-color[1])**2+(paletteColor[2]-color[2])**2))
  63.     return minValueID(distances)
  64.            
  65. im = Image.open("image3.png") #bildquelle auflösung * step = 1052x580 für querformat
  66. im = im.convert("RGB")
  67.  
  68. for y in range(im.size[1]):
  69.     for x in range(im.size[0]):
  70.         color = mapColor(im.getpixel((x,y)))
  71.         if (color != lastColor):
  72.             pyautogui.click(color*stepPalette+offsetPalette[0],offsetPalette[1])
  73.         lastColor = color
  74.         pyautogui.click(x*step+offset[0], y*step+offset[1])
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement