2011-07-31 69 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