gpt4 book ai didi

python - 如何检测(查看)鼠标指针周围的屏幕区域

转载 作者:太空狗 更新时间:2023-10-29 11:15:39 28 4
gpt4 key购买 nike

我在 Linux 上,想尝试为我的 Web 开发重新创建 Nattyware 的 Pixie 工具。 gPick 没问题,但 Pixie 更好。

我希望能够检测并显示鼠标指针周围的区域。我一直在尝试找到一种方法来显示鼠标指针周围的区域,并使用 Python 进行放大。

我不知道从哪里开始做类似的事情。我不想保存任何图像,只是显示鼠标在窗口中的放大区域。

编辑:我得到了一些可能有用的东西。 不要运行它,它会崩溃!

import sys, evdev
from Xlib import display, X
from PyQt4 import QtGui
from PyQt4.QtGui import QPixmap, QApplication, QColor

class printImage():
def __init__(self):
self.window = QtGui.QMainWindow()
self.window.setGeometry(0,0,400,200)

self.winId = QApplication.desktop().winId()
self.width = 150
self.height = 150

self.label = QtGui.QLabel('Hi')
self.label.setGeometry(10, 10, 400, 100)
self.label.show()

def drawView(self, x, y):
self.label.setText('abc')
pix = self.getScreenArea(x, y)
self.pic.setPixmap(pix)

def render(self):
self.window.show()

def getScreenArea(self, areaX, areaY):
image = QPixmap.grabWindow(
self.winId,
x = areaX,
y = areaY,
width = self.width,
height = self.height
)

return image

if __name__ == '__main__':
app = QApplication(sys.argv)
view = printImage()

view.render()

display = display.Display(':0')
root = display.screen().root

root.grab_pointer(
True,
X.PointerMotionMask | X.ButtonReleaseMask,
X.GrabModeAsync,
X.GrabModeAsync,
0, 0,
X.CurrentTime
)

while True:
ev = display.next_event()
view.drawView(ev.event_x, ev.event_y)

app.exec_()

知道为什么它会 self 毁灭吗?它在 grabWindow() 函数上崩溃。还有其他我可以使用的东西吗?

最佳答案

这对我在 linux 上有效,可能是跨平台的:

import wx
ff=wx.App()
screen = wx.ScreenDC()
size = screen.GetSize()
bmp = wx.EmptyBitmap(size[0], size[1])
mem = wx.MemoryDC(bmp)
mem.Blit(0, 0, size[0], size[1], screen, 0, 0)
del mem
#bmp.SaveFile('screenshot.png', wx.BITMAP_TYPE_PNG)
im = bmp.ConvertToImage()

来自帮助:

ConvertToImage

Creates a platform-independent image from a platform-dependent
bitmap. This preserves mask information so that bitmaps and images can
be converted back and forth without loss in that respect.

关于python - 如何检测(查看)鼠标指针周围的屏幕区域,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10988380/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com