o
    * iG                     @  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y0Zdisplay_namemsgZ
im_cropped r<   Y/home/app/PaddleOCR-VL-test/.venv_paddleocr/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)rK   N)rM   -timagexclip)rL   N)rP   z
-selection	clipboardrN   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bytesrH   rI   ZPngImageFilerJ   ZDibImageFiler!   getenvr.   r/   NotImplementedErrorstderrstripChildProcessErrorr&   )prT   r:   fmtrY   ofilesrI   rJ   Zsession_typer2   r;   errZsilent_errorr7   r<   r<   r=   grabclipboardv   sl   












rj   )NFFNN)r   r   r   r	   r
   r	   r   r   r   r   r   r   )r   r?   )
__future__r   rU   r!   r.   r#   r   r   rH   r   TYPE_CHECKINGr   r>   rj   r<   r<   r<   r=   <module>   s$   U