python学习笔记--缓解眼睛疲劳的小工具
程序员文章站
2022-07-24 13:36:40
工作之余想着劳逸结合,然后就点开了‘大家来找茬’的休闲游戏,结果发现这玩意儿并不怎么休闲。 原本双眼在日常的‘BUG与调试’中就很疲劳了,休闲后结果更加疲劳了。 本次功能需求为自动判断两图差异,从而达到缓解眼睛疲劳功能,主要使用了pywin32,PIL,PyQt5,最终达到效果如下: 1.获取窗口句 ......
工作之余想着劳逸结合,然后就点开了‘大家来找茬’的休闲游戏,结果发现这玩意儿并不怎么休闲。
原本双眼在日常的‘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)
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')
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()
博主主要从事JAVA开发,平时‘义务’加班很多,因此学习python的时间很少,本次主要为了学习pywin32,PIL,PyQt5,游戏本是大家百忙中的一点娱乐,为了避免影响大家的心情,所以奉劝大家不要开挂!不要开挂!不要开挂!
上一篇: 11.Flask钩子函数
下一篇: Linux目录切换实现代码案例