欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

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

程序员文章站 2022-07-24 13:36:40
工作之余想着劳逸结合,然后就点开了‘大家来找茬’的休闲游戏,结果发现这玩意儿并不怎么休闲。 原本双眼在日常的‘BUG与调试’中就很疲劳了,休闲后结果更加疲劳了。 本次功能需求为自动判断两图差异,从而达到缓解眼睛疲劳功能,主要使用了pywin32,PIL,PyQt5,最终达到效果如下: 1.获取窗口句 ......

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

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

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

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

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

  python学习笔记--缓解眼睛疲劳的小工具
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.分别截取两图,把其中一张取反色,然后融合两张图

  python学习笔记--缓解眼睛疲劳的小工具
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的功能绑定到‘刷新’按钮。

  python学习笔记--缓解眼睛疲劳的小工具
 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,游戏本是大家百忙中的一点娱乐,为了避免影响大家的心情,所以奉劝大家不要开挂!不要开挂!不要开挂!