o
    6>gr                     @  sj   d dl mZ d dlZd dlZd dlZd dlZd dlZd dlZddlm	Z	 				ddddZ
dddZdS )    )annotationsN   )ImageFbbox tuple[int, int, int, int] | Noneinclude_layered_windowsboolall_screensxdisplay
str | NonereturnImage.Imagec              
   C  sD  |d u rt jdkratd\}}t| dg}| r5| \}}}	}
|d| d| d|	|  d|
|  g7 }t|d|g  t	|}|
  t| | r_||	| |
| f}|  |S |S t jdkrtj||\}}}td||d	d
|d d d d@ d}| r|\}}| \}}}	}
||| || |	| |
| f}|S |}ztjjsd}t|tj|\}}W nP ty   |d u rt jdvrtdrtd\}}t| tdd|g t	|}|
  t| | r|| }|  | Y S | Y S  w td||d	d|d d d}| r || }|S )Ndarwinz.pngscreencapturez-R,z-xwin32RGBrawBGRr      z$Pillow was built without XCB support)r   r   zgnome-screenshotz-fBGRX   r   )sysplatformtempfilemkstemposclose
subprocesscallr   openloadunlinkresizecoregrabscreen_win32	frombytescropHAVE_XCBOSErrorgrabscreen_x11shutilwhich)r   r   r	   r
   fhfilepathargslefttoprightbottomim
im_resizedoffsetsizedatax0y0display_namemsg
im_cropped r@   @/var/www/html/venv/lib/python3.10/site-packages/PIL/ImageGrab.pygrab   s~   

*




"





rB   Image.Image | list[str] | Nonec                  C  s$  t jdkr+tjg ddd} | jdkrd S dd l}t|| j	dd }t
|S t jdkrt
j \}}|d	krodd l}|d
|d }|d dkrZ||d  dd}n||d  dd}|d |d S t|trt|}|dkrddlm} ||S |dkrddlm} ||S d S tdrd}	n
tdrd}	nd }	tdr|	dv rg d}
ntdr|	dv rg d}
nd}t|tj|
dd} | jdkr| j}d D ]	}||v r d S q|
d  d!}|r|d"|    7 }t!|t| j	}t
|}|"  |S )#Nr   )	osascriptz-eu#   get the clipboard as «class PNGf»T)capture_outputr      r   fileI   zutf-16le mbcs pngr   )PngImagePluginDIB)BmpImagePluginWAYLAND_DISPLAYwaylandDISPLAYx11wl-paste)rS   N)rV   -timagexclip)rU   N)rY   z
-selection	clipboardrW   z	image/pngz-ozDwl-paste or xclip is required for ImageGrab.grabclipboard() on Linux)s   Nothing is copieds   No selections"   No suitable type of content copieds    not availables   cannot convert s(   xclip: Error: There is no owner for the z errorz: )#r   r   r    run
returncodebinasciiioBytesIO	unhexlifystdoutr   r"   r&   grabclipboard_win32structunpack_fromdecodesplitindex
isinstancebytesrM   rO   PngImageFilerQ   DibImageFiler   getenvr-   r.   NotImplementedErrorstderrstripChildProcessErrorr#   )pr]   r:   fmtrc   ofilesrO   rQ   session_typer1   r>   errsilent_errorr6   r@   r@   rA   grabclipboardi   sl   












rx   )NFFN)
r   r   r   r   r	   r   r
   r   r   r   )r   rC   )
__future__r   r^   r   r-   r    r   r   rM   r   rB   rx   r@   r@   r@   rA   <module>   s   L