1
laqow 2018-07-24 12:40:42 +08:00 via Android
跟图片有关的缓存都是写在 temp 里的可以自己翻源码
|
2
cjq8z OP win32api 代码如下:
import win32gui import win32ui hwnd = win32gui.FindWindow(None, windowname) wDC = win32gui.GetWindowDC(hwnd) dcObj=win32ui.CreateDCFromHandle(wDC) cDC=dcObj.CreateCompatibleDC() dataBitMap = win32ui.CreateBitmap() dataBitMap.CreateCompatibleBitmap(dcObj, w, h) cDC.SelectObject(dataBitMap) cDC.BitBlt((0,0),(w, h) , dcObj, (0,0), win32con.SRCCOPY) #dataBitMap.SaveBitmapFile(cDC, bmpfilenamename) 我在这里就把 pycdc 转换成了 numpy,保存在变量里,在后面代码运行后,就 return 这个变量出去。 # Free Resources dcObj.DeleteDC() cDC.DeleteDC() win32gui.ReleaseDC(hwnd, wDC) win32gui.DeleteObject(dataBitMap.GetHandle()) |
3
cjq8z OP @laqow 非计算机专业,没有系统学过编程,对这些不是太明白。我用过 pillow 截图,这个要 50ms,速度不够快,win32API 只要 10ms,用 pillow 而这个也有写硬盘操作。像这种缓存,有没有办法避免它写,如果不想它写,该如何解决?
|
4
wwqgtxx 2018-07-24 13:10:43 +08:00 via iPhone
你去翻翻 pytesseract 的源码,有些使用他是调用 tesseract.exe 的,那样的话需要先把图片写入硬盘再让 exe 读取
|