Пример #1
0
def backends(childprocess):
    # the order is based on performance
    if platform_is_linux():
        if use_x_display():
            if childprocess:
                yield ScrotWrapper
                yield PilWrapper
                yield MssWrapper
            else:
                yield PilWrapper
                yield MssWrapper
                yield ScrotWrapper
            yield MaimWrapper
            yield ImagemagickWrapper
            yield Gdk3PixbufWrapper
            yield WxScreen
            for x in qt():
                yield x
        yield GnomeDBusWrapper

        # on screen notification
        yield KwinDBusWrapper

        # flash effect
        yield GnomeScreenshotWrapper

        yield GrimWrapper

    elif platform_is_osx():
        # first check for X
        if use_x_display():
            pass
        else:
            # fast
            yield MssWrapper

            # latest version should work
            yield PilWrapper

            # alternatives for older pillow versions
            yield ScreencaptureWrapper
            yield MacQuartzWrapper

            # qt has some color difference

            # does not work: Gdk3, wx, Imagemagick

    elif platform_is_win():
        # fast
        yield MssWrapper

        yield PilWrapper
    else:
        for x in backend_dict.values():
            yield x
Пример #2
0
try:
    from Xlib import display
except ImportError:
    display = None

# https://github.com/python-xlib/python-xlib/blob/master/examples/xrandr.py#L44
def missing_RANDR():
    if display:
        return False
    disp = display.Display()
    return not disp.has_extension("RANDR")


ok = False
if not six.PY2 and check_import("mss"):
    if platform_is_osx() and not use_x_display():
        ok = True
    if platform_is_linux() and use_x_display():
        ok = True
    if platform_is_win():
        ok = True

if ok:

    def test_mss():
        if missing_RANDR():
            try:
                backend_to_check("mss")
            except FailedBackendError:
                pass
        else:
Пример #3
0
from bt import backend_to_check, prog_check
from pyscreenshot.util import use_x_display

if use_x_display():
    if prog_check(["maim", "--version"]):

        def test_maim():
            backend_to_check("maim")
Пример #4
0
from bt import backend_to_check, prog_check
from pyscreenshot.util import use_x_display

if not use_x_display():
    if prog_check(["grim", "-h"]):

        def test_grim():
            backend_to_check("grim")