vpu2b_live.py 2.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119
  1. # ===== GUI =========
  2. import pygame
  3. import pygame.gfxdraw
  4. import pygame.font
  5. import os
  6. os.environ['SDL_VIDEO_WINDOW_POS'] = '%i,%i' % (200,164)
  7. os.environ['SDL_VIDEO_CENTERED'] = '0'
  8. pg = pygame
  9. pygame.init()
  10. pygame.mixer.quit()
  11. f = pygame.font.get_fonts()
  12. for i in f:
  13. if "mono" in i.lower():
  14. print(i)
  15. font = pygame.font.SysFont("freemonobold",22)
  16. font10 = pygame.font.SysFont("freemonobold",10)
  17. font12 = pygame.font.SysFont("freemonobold",12)
  18. font15 = pygame.font.SysFont("freemonobold",15)
  19. #font = pygame.font.SysFont(None,30)
  20. fr = font.render("hallo" ,1, (200,0,255))
  21. main_size= [400,400]
  22. window = pygame.display.set_mode(main_size,pg.RESIZABLE)#,32)#,pygame.FULLSCREEN) #x left->right ,y top-> bottom
  23. pg.display.set_caption('LibreLight LED-SCREEN')
  24. mouse = {"pos":(0,0)}
  25. def pointer():#xxxevent=None):
  26. global mouse
  27. event = mouse # = None
  28. if not event:
  29. return
  30. if "pos" in event:#:.dict:
  31. print("pointer",event)
  32. rgb = [0,0,200,200]
  33. x = event["pos"][0]
  34. y = event["pos"][1]
  35. p = 100
  36. print(window,rgb,event["pos"])
  37. pygame.draw.rect(window,rgb,(x-5,y-5,10,10))
  38. #pygame.draw.line(window,self.rgb, (self.pos[0],self.pos[1]) , (self.pos[0]+100,self.pos[1]) )
  39. # mouse grid posision
  40. fr = font15.render("{}/{}".format(x,y) ,1, (200,200,200))
  41. window.blit(fr,(200,25))
  42. # crosshair
  43. pygame.draw.line(window,rgb, (x-p,y) , (x-2,y) )
  44. pygame.draw.line(window,rgb, (x,y-p) , (x,y-2) )
  45. rgb = [0,200,0]
  46. pygame.draw.line(window,rgb, (x+2,y) , (x+p,y) )
  47. pygame.draw.line(window,rgb, (x,y+2) , (x,y+p) )
  48. def draw_circle(surface,color, pos, radius):
  49. x,y=pos
  50. pygame.gfxdraw.aacircle(surface, int(x), int(y), radius-1, color)
  51. pygame.gfxdraw.filled_circle(surface, int(x), int(y), radius-1, color)
  52. def grab(x=55,y=55,w=60,h=60):
  53. # usage
  54. # sub = grab()
  55. # window.blit(sub, (500,10))
  56. rect = pygame.Rect(x, y, w, h)
  57. sub = window.subsurface(rect)
  58. #pixArray = pygame.PixelArray(screen)
  59. crop = pygame.Surface((w,h))
  60. crop.blit(sub, (0,0))
  61. return crop
  62. def event():
  63. #global NR,running
  64. global mouse
  65. for event in pygame.event.get():
  66. print(event.dict)
  67. if "pos" in event.dict:
  68. mouse = event.dict
  69. i = 0
  70. while 1:
  71. event()
  72. window.fill((20,20,20))
  73. pygame.draw.rect(window,[100,0,0,127],[10,10,10,10])
  74. fr = font15.render("{:02}".format(i) ,1, (100,100,255,255))
  75. window.blit(fr,(40,30))
  76. rgb = [255,255,255]
  77. pygame.draw.line(window,rgb, (0,255) , (400,255) )
  78. pointer() #event)
  79. sub = grab(x=0,y=0)
  80. window.blit(sub, (200,10))
  81. pygame.display.flip()
  82. pg.time.wait(30)
  83. pygame.display.flip()
  84. i += 1