Advertisement
MagicWinnie

Untitled

Jan 1st, 2020
206
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 2.04 KB | None | 0 0
  1. import time
  2. import re
  3. import colorsys
  4. import numpy as np
  5.  
  6. #reading
  7. # lines = eval(input())
  8. f = open("input.txt", "r")
  9. lines = eval(f.readlines()[0])
  10. #getting head
  11. b = b''
  12. for i in range(0,len(lines)-1):
  13.     b+=lines[i:i+1]
  14.     if lines[i-3:i] == b'255' or lines[i-3:i] == "255":
  15.         break
  16. b = b.decode()
  17. b = re.sub(' +', ' ', b).strip().rstrip().splitlines()
  18. while ' ' in b:
  19.     b.remove(' ')
  20.  
  21. #getting map
  22. d = lines[i+1:]
  23.  
  24. #decoding
  25. arr = []
  26. for i in range(0,len(d),3):
  27.     arr.append([d[i], d[i+1], d[i+2]])
  28.  
  29.  
  30.  
  31. #getting maxval, width and height
  32. maxval = b[-1]
  33. first = 0
  34. for i in range(len(b)):
  35.     if b[i].split()[0].isdigit() and first == 0:
  36.         width = int(b[i].split()[0])
  37.         first = 1
  38.     elif b[i].split()[0].isdigit() and first != 0:
  39.         height = int(b[i].split()[0])
  40.         break
  41.  
  42. #reshaping
  43. arr_new = np.reshape(arr,(height,width,3))
  44.  
  45. #creating image
  46. arr_new = np.array(arr_new, dtype="uint8")
  47.  
  48. #getting comments
  49. arr_comments = []
  50. for i in range(len(b)):    
  51.     if b[i].find('#') != -1:
  52.         if b[i].find('!') != -1 and (b[i][1]=='!' or b[i][2] == '!'):
  53.             arr_comments.append(b[i].replace('#', '').replace('!', '').split())
  54.  
  55. def hsv2rgb(h,s,v):
  56.     h = h/360
  57.     s = s/100
  58.     v = v/100
  59.     return tuple(round(i * 255) for i in colorsys.hsv_to_rgb(h,s,v))
  60.  
  61.  
  62. #hsv2rgb
  63. for i in range(len(arr_comments)):
  64.     arr_comments[i][0] = int(arr_comments[i][0])
  65.     arr_comments[i][1] = float(arr_comments[i][1][:len(arr_comments[i][1])-1])
  66.     if "%" in arr_comments[i][2]:
  67.         arr_comments[i][2] = float(arr_comments[i][2][:len(arr_comments[i][2])-1])
  68.     else:
  69.         arr_comments[i][2] = float(arr_comments[i][2])*100
  70.     if "%" in arr_comments[i][3]:
  71.         arr_comments[i][3] = float(arr_comments[i][3][:len(arr_comments[i][3])-1])
  72.     else:
  73.         arr_comments[i][3] = float(arr_comments[i][3])*100
  74.     arr_comments[i][1], arr_comments[i][2], arr_comments[i][3] = hsv2rgb(arr_comments[i][1], arr_comments[i][2], arr_comments[i][3])
  75.  
  76. print(arr_new.tolist(), arr_comments)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement