o
    _hG                     @  s   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Z
e
r.ddlmZ 					ddddZdddZdS )    )annotationsN   )ImageF)ImageWinbbox tuple[int, int, int, int] | Noneinclude_layered_windowsboolall_screensxdisplay
str | Nonewindowint | ImageWin.HWND | NonereturnImage.Imagec              
   C  s  |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r|d urld}tj|||d uryt|nd	\}}}td
||dd|d	 d d d@ d}| r|\}}| \}}	}
}||| |	| |
| || f}|S |}ztjjsd}t|tj|\}}W nh ty/   |d u r.t jdvr.tdrddg}ntdrdg}ntdrg d}n td\}}t| t||g  t	|}|
  t| | r*|| }|  | Y S | Y S  w td
||dd|d	 d d}| rG|| }|S )Ndarwinz.pngscreencapturez-R,z-xwin32r   RGBrawBGR   z$Pillow was built without XCB support)r   r   zgnome-screenshot-fgrim	spectacle)r   z-nz-br   -oBGRX   r   )sysplatformtempfilemkstemposclose
subprocesscallr   openloadunlinkresizecoregrabscreen_win32int	frombytescropHAVE_XCBOSErrorgrabscreen_x11shutilwhich)r   r   r
   r   r   fhfilepathargslefttoprightbottomim
im_resizedoffsetsizedatax0y0display_namemsg
im_cropped rH   A/var/www/html/myenv/lib/python3.10/site-packages/PIL/ImageGrab.pygrab!   s   

*




"









rJ   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   mbcs zutf-16le pngr   )PngImagePluginDIB)BmpImagePluginWAYLAND_DISPLAYwaylandDISPLAYx11wl-paste)r[   N)r^   -timagexclip)r]   N)ra   z
-selection	clipboardr_   z	image/pngr   zDwl-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bytesrU   rW   PngImageFilerY   DibImageFiler%   getenvr5   r6   NotImplementedErrorstderrstripChildProcessErrorr*   )pre   rB   fmtrk   ofilesrW   rY   session_typer9   rF   errsilent_errorr>   rH   rH   rI   grabclipboardv   sl   












r   )NFFNN)r   r   r   r	   r
   r	   r   r   r   r   r   r   )r   rK   )
__future__r   rf   r%   r5   r'   r!   r#   rU   r   TYPE_CHECKINGr   rJ   r   rH   rH   rH   rI   <module>   s$   U