Проблема с захватом экрана (снимки экрана)

Вот является vid демонстрацией проблемы.

Каждый раз, когда я пытаюсь захватить снимок экрана, я захватываю другое изображение к тому, что я думаю, что захватываю (кроме тех случаев, когда с помощью printscreen функциональности человечности, когда Вы нажимаете клавишу). Эта проблема конкретно не связывается с затвором (от видео), но моя собственная программа снимка экрана, записанная в Python, демонстрирует то же поведение. Образец кода, который делает снимок экрана, здесь:

def grab_screenshot():
    """ Grabs a screenshot of the active window and saves it as a png with the current time """
    root = gtk.gdk.screen_get_default()

    if root.supports_net_wm_hint("_NET_ACTIVE_WINDOW") and root.supports_net_wm_hint("_NET_WM_WINDOW_TYPE"):
        print "Grabbing active window"
        active = root.get_active_window()

        # Comment these two lines if you dont want to enable screenshotting of the entire desktop
        # instead of just the active window.
#        if active.property_get("_NET_WM_WINDOW_TYPE")[-1][0] == '_NET_WM_WINDOW_TYPE_DESKTOP':
#            return "FAIL"

        # Calculate the size of the wm decorations
        relativex, relativey, winw, winh, d = active.get_geometry() 
        w = winw + (relativex*2)
        h = winh + (relativey+relativex)

        # Calculate the position of where the wm decorations start (not the window itself)
        screenposx, screenposy = active.get_root_origin()
        print "screen posx: %d" % screenposx
        print "screen posy: %d" % screenposy

        # Take the screenshot
        screenshot = gtk.gdk.Pixbuf.get_from_drawable(gtk.gdk.Pixbuf(gtk.gdk.COLORSPACE_RGB, True, 8, w, h),
                                                      gtk.gdk.get_default_root_window(),
                                                      gtk.gdk.colormap_get_system(),
                                                      screenposx, screenposy, 0, 0, w, h)
    else:
        window = gtk.gdk.get_default_root_window()
        size = window.get_size()
        print "The size of the window is %d x %d" % size
        pixel_buffer = gtk.gdk.Pixbuf(gtk.gdk.COLORSPACE_RGB, False, 8, size[0], size[1])
        screenshot = pixel_buffer.get_from_drawable(window, window.get_colormap(), 0, 0, 0, 0, size[0], size[1])

    if (screenshot != None):
        timeNow = time.time()
        fileName = "screenshot_%d.png" %timeNow
        screenshot.save(fileName, "png")

        print "Screenshot saved to " + fileName
    else:
        print "Unable to get the screenshot."
        fileName = "FAIL"

    return fileName

Я предполагаю, что это - проблема с gtk? Я пытался отметить gtk утилиту загрузчика в compiz, но это, кажется, не помогло всегда.

1
задан 26 June 2013 в 21:20

0 ответов

Другие вопросы по тегам:

Похожие вопросы: