python学习笔记--缓解眼睛疲劳的小工具

  工作之余想着劳逸结合,然后就点开了‘大家来找茬’的休闲游戏,结果发现这玩意儿并不怎么休闲。

  原本双眼在日常的‘BUG与调试’中就很疲劳了,休闲后结果更加疲劳了。

  本次功能需求为自动判断两图差异,从而达到缓解眼睛疲劳功能,主要使用了pywin32,PIL,PyQt5,最终达到效果如下:

  

  1.获取窗口句柄并窗口截图

  
1 def flush_game():
2     handle = win32gui.FindWindow(None, '大家来找茬')
3     win32gui.ShowWindow(handle, win32con.SW_RESTORE)
4     win32gui.SetForegroundWindow(handle)
5     wrect = win32gui.GetWindowRect(handle)
6     img = ImageGrab.grab(wrect)
View Code

  2.分别截取两图,把其中一张取反色,然后融合两张图

  
1 def contrast_img(img):
2     i1 = img.crop((93, 312, 474, 598))
3     i2 = img.crop((550, 312, 550 + 474 - 93, 598))
4     i3 = ImageChops.invert(i2)
5     Image.blend(i1, i3, 0.5).save('1.jpg')
View Code

  3.创建窗口来展示融合后的图,将1,2的功能绑定到‘刷新’按钮。

  
 1 class App(QWidget):
 2     def __init__(self):
 3         super().__init__()
 4         self.left = 541+900
 5         self.top = 449
 6         self.width = 550 + 474 - 93-550
 7         self.height = 598-312
 8         self.initUI()
 9 
10     def initUI(self):
11         self.setGeometry(self.left, self.top, self.width, self.height)
12         self.setWindowFlags(Qt.WindowMinimizeButtonHint |
13                        Qt.WindowCloseButtonHint |
14                        Qt.WindowStaysOnTopHint)
15         self.setWindowOpacity(1
16                               )
17         l1 = QLabel(self)
18         png = QPixmap('1.jpg')
19         l1.setPixmap(png)
20         button = QPushButton("刷新", self)
21         # button.move(100, 70)
22         button.clicked.connect(self.on_click)
23         self.show()
24 
25     @pyqtSlot()
26     def on_click(self):
27         flush_game()
28         self.initUI()
View Code

   博主主要从事JAVA开发,平时‘义务’加班很多,因此学习python的时间很少,本次主要为了学习pywin32,PIL,PyQt5,游戏本是大家百忙中的一点娱乐,为了避免影响大家的心情,所以奉劝大家不要开挂!不要开挂!不要开挂!

猜你喜欢

转载自www.cnblogs.com/lcp33/p/9115642.html