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.pngZscreencapturez-R,z-xwin32r   RGBrawZBGR   z$Pillow was built without XCB support)r   r   zgnome-screenshot-fZgrim	spectacle)r   z-nz-br   -oZBGRX   r   )sysplatformtempfilemkstemposclose
subprocesscallr   openloadunlinkresizecoreZgrabscreen_win32int	frombytescropZHAVE_XCBOSErrorZgrabscreen_x11shutilwhich)r   r   r
   r   r   fhfilepathargslefttoprightbottomimZ
im_resizedoffsetsizedataZx0Zy0display_namemsgZ
im_cropped r=   S/home/www/facesmatcher.com/frenv_anti/lib/python3.10/site-packages/PIL/ImageGrab.pygrab!   s   

*




"









r?   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   )Z	osascriptz-eu#   get the clipboard as «class PNGf»T)capture_outputr      r   fileI   mbcs zutf-16le Zpngr   )PngImagePluginZDIB)BmpImagePluginZWAYLAND_DISPLAYwaylandZDISPLAYx11wl-paste)rL   N)rN   -timagexclip)rM   N)rQ   z
-selection	clipboardrO   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)   Zgrabclipboard_win32structunpack_fromdecodesplitindex
isinstancebytesrI   rJ   ZPngImageFilerK   ZDibImageFiler!   getenvr.   r/   NotImplementedErrorstderrstripChildProcessErrorr&   )prU   r:   fmtrZ   ofilesrJ   rK   Zsession_typer2   r<   errZsilent_errorr7   r=   r=   r>   grabclipboardv   sl   












rk   )NFFNN)r   r   r   r	   r
   r	   r   r   r   r   r   r   )r   r@   )
__future__r   rV   r!   r.   r#   r   r   rI   r   TYPE_CHECKINGr   r?   rk   r=   r=   r=   r>   <module>   s$   U