o
    Zh                     @  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darwin.pngZscreencapturez-R,z-xwin32RGBrawZBGRr      z$Pillow was built without XCB support)r   r   zgnome-screenshotz-fZBGRX   r   )sysplatformtempfilemkstemposclose
subprocesscallr   openloadunlinkresizecoreZgrabscreen_win32	frombytescropZHAVE_XCBOSErrorZgrabscreen_x11shutilwhich)r   r   r	   r
   fhfilepathargslefttoprightbottomimZ
im_resizedoffsetsizedataZx0Zy0Zdisplay_namemsgZ
im_cropped r6   D/var/www/html/lang_env/lib/python3.10/site-packages/PIL/ImageGrab.pygrab   s~   

*




"





r8   Image.Image | list[str] | Nonec                  C  sd  t jdkrItd\} }t|  d| d ddddg}d	g}|D ]}|d
|g7 }q!t| d }t|j	dkrBt
|}|  t| |S t jdkrt
j \}}|dkrdd l}|d|d }	|d dkrx||	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   r   z,set theFile to (open for access POSIX file "z" with write permission)tryu6       write (the clipboard as «class PNGf») to theFilezend tryzclose access theFileZ	osascriptz-er   r   fileI   zutf-16le mbcs Zpngr   )PngImagePluginZDIB)BmpImagePluginZWAYLAND_DISPLAYwaylandZDISPLAYx11wl-paste)rC   N)rE   -timagexclip)rD   N)rH   z
-selection	clipboardrF   z	image/pngz-ozDwl-paste or xclip is required for ImageGrab.grabclipboard() on LinuxT)capture_output)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   r   r   r   r   r   statst_sizer   r    r!   r"   r$   Zgrabclipboard_win32structunpack_fromdecodesplitindex
isinstancebytesioBytesIOr@   rA   ZPngImageFilerB   ZDibImageFilegetenvr(   r)   NotImplementedErrorrun
returncodestderrstripChildProcessErrorstdout)r*   r+   commandsscriptcommandr1   fmtr4   rM   ofilesrA   rB   Zsession_typer,   r5   perrZsilent_errorr6   r6   r7   grabclipboardi   s   

	













rf   )NFFN)
r   r   r   r   r	   r   r
   r   r   r   )r   r9   )
__future__r   rT   r   r(   r   r   r   r@   r   r8   rf   r6   r6   r6   r7   <module>   s   L