python學習筆記--緩解眼睛疲勞的小工具
阿新 • • 發佈:2018-05-31
-a 學習 學習python ide AD 窗口 按鈕 echo city
工作之余想著勞逸結合,然後就點開了‘大家來找茬’的休閑遊戲,結果發現這玩意兒並不怎麽休閑。
原本雙眼在日常的‘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)View Code5 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(‘View Code1.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 defView CodeinitUI(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,遊戲本是大家百忙中的一點娛樂,為了避免影響大家的心情,所以奉勸大家不要開掛!不要開掛!不要開掛!
python學習筆記--緩解眼睛疲勞的小工具