2011-07-31 70 views
0

我試過很多東西,但是如果我嘗試做一個全尺寸窗口的自動屏幕截圖,我可以得到一個黑屏。用Python拍攝全屏圖像(Windows)

我試過ImageGrab.grab()和自動Prt Scr按,我沒有運氣。

自動化的Prt Scr按鍵允許我手動將圖像粘貼到繪圖中,但是如果我試圖使用ImageGrab.grabclipboard()將它加載到Python中,它會再次變黑。儘管我不確定win32gui中的其他內容是否能夠給我提供正確的結果(它似乎沒有很好的記錄),但是hwnd = win32gui.GetActiveWindow()也給了我黑色的圖像。

我試過的最後一件事是一個自動按鍵和win32clipboard.GetClipboardData(win32clipboard.CF_BITMAP),這給了我一個整數結果,它可能是也可能不是黑色。如果有人知道如何在Python中將GetClipboardData轉換爲圖像,那就太棒了。

或者我會很感激任何替代建議。所有這些方法(除了我無法解決的getClipboardData)都用於窗口化程序的屏幕截圖。

謝謝。

回答

0

你從http://effbot.org/imagingbook/imagegrab.htm試圖

im = ImageGrab.grabclipboard() 

if isinstance(im, Image.Image): 
... got an image ... 
elif im: 
    for filename in im: 
     try: 
      im = Image.open(filename) 
     except IOError: 
      pass # ignore this file 
     else: 
      ... got an image ... 
else: 
    ... clipboard empty ... 

? 如果是,請將您的自適應代碼發佈完整,以便我們檢查出來。

+0

我已經嘗試了完全相同的格式,從沒有全屏窗口它是正確的,但從全屏窗口它只是返回一個完全黑色的圖像。不過謝謝。我可以確保所有需要屏幕截圖的節目都有窗口。 – DNN

+0

@DNN,全屏窗口圖形渲染的處理方式完全不同,並且對它們進行截圖肯定會非常棘手。 – BrainStorm