I have a problem when taking screenshots with PIL ImageGrab and saving the pictures.
Ironically it works when my monitor is connected directly on the mainboard, but when i connect it to the GPU i just get black images.
This is my code:
from psychopy import visual, gui, core
import os, sys, wx
from PIL import ImageGrab
expName = os.path.basename(sys.argv[0]).split('.')[0]
info = {'ProbandInnencode': ''}
dialogObj = gui.DlgFromDict(info, title="Test Script", order=["ProbandInnencode"])
if dialogObj.OK:
expInfo = dialogObj.data
else:
core.quit()
app = wx.App(False)
sizeX = wx.GetDisplaySize()[0]
sizeY = wx.GetDisplaySize()[1]
win = visual.Window(screen=2, size=[sizeX, sizeY], fullscr=True, color="black")
image = visual.ImageStim(win=win, name='image', units='pix', image='Stimuli/Test.PNG', pos=(0, 0), size=(250,250), color="white")
brush = visual.Brush(win=win, name='brush', lineWidth=5.0, lineColor="black", buttonRequired=True)
fix = visual.TextStim(win=win, name='fix', height=0.2, text='+')
imX = image.size[0]
imY = image.size[1]
for i in range(3):
for frameN in range(30):
fix.draw()
win.flip()
for frameN in range(300):
image.draw()
brush.draw()
win.flip()
im = ImageGrab.grab(bbox=(((((sizeX-imX) / 2))), ((((sizeY-imY) / 2))), ((((sizeX-imX) / 2)) + imY),((((sizeY - imY) / 2)) + imY)))
im.save("data/Item_"+str(i)+".PNG")
brush.reset()
for frameN in range(30):
win.flip()
Any ideas what could cause this behavior?
Kind regards,
Dennis