在windows上截取截圖的最快方式是什麼? PIL.ImageGrab
相當慢..需要4-5秒才能截取同一個小窗口的30張截圖。整個桌面的截圖甚至更慢。在windows上用python截圖的最快方法
回答
您可以直接使用win32 API。
1)首先把焦點放在你想截圖的應用上。 link text
2)Win32 API可以用截圖幫助:
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)
# Free Resources
dcObj.DeleteDC()
cDC.DeleteDC()
win32gui.ReleaseDC(hwnd, wDC)
win32gui.DeleteObject(dataBitMap.GetHandle())
非常重要,因爲這最近在屁股上咬我:你必須刪除/釋放由此創建的所有DC,或者在拍攝〜90張圖像後,您將無法再使用。在這種情況下,'dcObj.DeleteDC(); cDC.DeleteDC(); win32gui.ReleaseDC(hwnd,wDC)' – Claudiu 2010-09-01 15:39:16
請爲此代碼添加必要的導入工作。 – 2012-12-26 17:29:46
請參閱此腳本以獲取更多詳細信息:http://bytes.com/topic/python/answers/576924-win32ui-vs-wxpy-screen-capture-multi-monitor – 2013-01-06 07:33:02
只是發現瞭如何用GTK做。似乎是最快迄今:
def image_grab_gtk(window):
left, top, right, bot = get_rect(window)
w = right - left
h = bot - top
s = gtk.gdk.Pixbuf(
gtk.gdk.COLORSPACE_RGB, False, 8, w, h)
s.get_from_drawable(
gtk.gdk.get_default_root_window(),
gtk.gdk.colormap_get_system(),
left, top, 0, 0, w, h)
final = Image.frombuffer(
"RGB",
(w, h),
s.get_pixels(),
"raw",
"RGB",
s.get_rowstride(), 1)
return final
沒有轉化爲PIL
圖像,它在我的測試案例比PIL快8倍。隨着轉換,它仍然快2.7倍。
什麼是get_rect? – denfromufa 2014-10-09 16:33:44
- 1. 在android上截屏的最快方法?
- 2. 在Windows中採取截圖的最快方式是什麼?
- 3. 在Flex 3中採用截圖的最快方法?
- 4. 在Windows上的Python,關閉並截圖
- 5. 的最快方法 - Python的
- 6. 在windows窗體中的圖像上繪製覆蓋圖的最快方法
- 7. 在Python中排序最快的方法
- 8. 在python中迭代的最快方法
- 9. 在現代Windows上繪製HWND的最快方法是什麼?
- 10. 在Windows上編寫字符串的最快方法?
- 11. 用Enthought Canopy Python在Windows上安裝OpenCV的最佳方法?
- 12. 快速截圖**來自python
- 13. 在python中處理來自web的圖像的最快方法?
- 14. Python igraph:將大圖轉換爲python-igraph的最快方法
- 15. 快速獲取C++(Win32)中Windows應用程序屏幕截圖的方法?
- 16. Python攔截方法調用
- 17. 調用方法的最快方法
- 18. 最快的方法
- 19. 最快的方法?
- 20. 最快的方法?
- 21. 在圖像上搜索指定項目的最快方法?
- 22. 如何在Windows PC上使用python腳本截取屏幕截圖?
- 23. 我需要python中的快速截圖
- 24. 用Python計算最多10億的最快方法
- 25. iPhone視頻截圖(最佳方法)
- 26. 以更快的速度截圖視圖的方法
- 27. 什麼方法會讓python算最快?
- 28. 獲取shell圖標的最快方法
- 29. 繪製位圖的最快方法?
- 30. 用Python排序算法的最快方法
聽起來像你真正想要的是屏幕視頻,在Sourceforge上的一個CamStudio。什麼是用例? – 2010-08-27 16:35:05
獲得有史以來的最高分[[漂亮的冬季]](P)[編輯] = P – Claudiu 2010-08-27 17:25:28