asd
This commit is contained in:
54
venv/lib/python3.12/site-packages/pyscreenshot/__init__.py
Normal file
54
venv/lib/python3.12/site-packages/pyscreenshot/__init__.py
Normal file
@ -0,0 +1,54 @@
|
||||
import logging
|
||||
from typing import List, Optional, Tuple
|
||||
|
||||
from PIL import Image
|
||||
|
||||
from pyscreenshot.about import __version__
|
||||
from pyscreenshot.childproc import childprocess_backend_version
|
||||
from pyscreenshot.loader import FailedBackendError, backend_dict, backend_grab
|
||||
|
||||
ADDITIONAL_IMPORTS = [FailedBackendError]
|
||||
|
||||
log = logging.getLogger(__name__)
|
||||
log.debug("version=%s", __version__)
|
||||
|
||||
|
||||
def grab(
|
||||
bbox: Optional[Tuple[int, int, int, int]] = None,
|
||||
childprocess: bool = True,
|
||||
backend: Optional[str] = None,
|
||||
) -> "Image":
|
||||
"""Copy the contents of the screen to PIL image memory.
|
||||
|
||||
:param bbox: optional bounding box (x1,y1,x2,y2)
|
||||
:param childprocess: run back-end in new process using popen. (bool)
|
||||
This isolates back-ends from each other and from main process.
|
||||
Leave it as it is (True) to have a safe setting.
|
||||
Set it False to improve performance, but then conflicts are possible.
|
||||
:param backend: back-end can be forced if set (examples:scrot, wx,..),
|
||||
otherwise back-end is automatic
|
||||
"""
|
||||
if bbox:
|
||||
x1, y1, x2, y2 = bbox
|
||||
if x2 <= x1:
|
||||
raise ValueError("bbox x2<=x1")
|
||||
if y2 <= y1:
|
||||
raise ValueError("bbox y2<=y1")
|
||||
return backend_grab(backend, bbox, childprocess)
|
||||
|
||||
|
||||
def backends() -> List[str]:
|
||||
"""Back-end names as a list.
|
||||
|
||||
:return: back-ends as string list
|
||||
"""
|
||||
return list(backend_dict.keys())
|
||||
|
||||
|
||||
def backend_version(backend: str) -> str:
|
||||
"""Back-end version.
|
||||
|
||||
:param backend: back-end (examples:scrot, wx,..)
|
||||
:return: version as string
|
||||
"""
|
||||
return childprocess_backend_version(backend)
|
||||
Reference in New Issue
Block a user