o
    ի`iF                     @  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 r$t jdkrtd\}}t| dg}|r$|dt|g7 }n| rA| \}}	}
}|d| d|	 d|
|  d||	  g7 }t|d|g  t	
|}|  t| | r|rtd\}}t| tddt|dd|g t	
|}|j|j d	k}W d    n1 sw   Y  t| |r| \}}	}
}|j|
| ||	 ftd
d | D d}n|| }|  |S ||
| ||	 f}|  |S |S t jdkr$|d urd}t	j|||d urt|nd\}}}t	d||dd|d d d d@ d}| r"|\}}| \}}	}
}||| |	| |
| || f}|S |}zt	jjs2d}t|t	j|\}}W nk ty   |d u rt jdvrtdrYddg}ntdrcdg}ntdrng d}n td\}}t| t||g  t	
|}|  t| | r|| }|  | Y S | Y S  w t	d||dd|d d d}| r|| }|S )Ndarwinz.pngscreencapturez-lz-R,z-x-od   c                 s  s    | ]}|d  V  qdS )   N ).0coordr   r   J/home/air/sos_test/back/venv/lib/python3.10/site-packages/PIL/ImageGrab.py	<genexpr>K   s    zgrab.<locals>.<genexpr>)boxwin32r   RGBrawBGR   z$Pillow was built without XCB support)r   r   zgnome-screenshot-fgrim	spectacle)r&   z-nz-br$   r   BGRX   r   )sysplatformtempfilemkstemposclosestr
subprocesscallr   openloadunlinkwidthresizetuplecropcoregrabscreen_win32int	frombytesHAVE_XCBOSErrorgrabscreen_x11shutilwhich)r   r   r
   r   r   fhfilepathargslefttoprightbottomimim_no_shadowretina
im_cropped
im_resizedoffsetsizedatax0y0display_namemsgr   r   r   grab!   s   


*






"







rU   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)rf   N)ri   -timagexclip)rh   N)rl   z
-selection	clipboardrj   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*   r0   run
returncodebinasciiioBytesIO	unhexlifystdoutr   r2   r9   grabclipboard_win32structunpack_fromdecodesplitindex
isinstancebytesr`   rb   PngImageFilerd   DibImageFiler-   getenvr@   rA   NotImplementedErrorstderrstripChildProcessErrorr3   )prp   rP   fmtrv   ofilesrb   rd   session_typerD   rT   errsilent_errorrI   r   r   r   grabclipboard   sl   












r   )NFFNN)r   r   r   r	   r
   r	   r   r   r   r   r   r   )r   rV   )
__future__r   rq   r-   r@   r0   r)   r+   r`   r   TYPE_CHECKINGr   rU   r   r   r   r   r   <module>   s$   q