asd
This commit is contained in:
@ -0,0 +1,41 @@
|
||||
import logging
|
||||
import os
|
||||
|
||||
from easyprocess import EasyProcess
|
||||
from PIL import Image
|
||||
|
||||
from pyscreenshot.plugins.backend import CBackend
|
||||
from pyscreenshot.tempexport import RunProgError
|
||||
|
||||
log = logging.getLogger(__name__)
|
||||
|
||||
|
||||
PROGRAM = "ksnip"
|
||||
|
||||
|
||||
class KsnipWrapper(CBackend):
|
||||
name = "ksnip"
|
||||
is_subprocess = True
|
||||
|
||||
def grab(self, bbox=None):
|
||||
cmd = [PROGRAM, "--fullscreen", "--save"]
|
||||
p = EasyProcess(cmd)
|
||||
p.call()
|
||||
if p.return_code != 0:
|
||||
raise RunProgError(p.stderr)
|
||||
lastline = p.stdout.splitlines()[-1]
|
||||
if "Image Saved" not in lastline:
|
||||
raise RunProgError(p.stderr)
|
||||
filename = lastline.split()[-1]
|
||||
im = Image.open(filename)
|
||||
os.remove(filename)
|
||||
|
||||
# TODO: bbox param
|
||||
if bbox:
|
||||
im = im.crop(bbox)
|
||||
return im
|
||||
|
||||
def backend_version(self):
|
||||
for line in EasyProcess([PROGRAM, "--version"]).call().stderr.splitlines():
|
||||
if "version" in line.lower():
|
||||
return line.split()[-1]
|
||||
Reference in New Issue
Block a user