o
    'hM                     @   sJ   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Zdd ZdS )
    N   )ImageFc              
   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rtj||\}}}td||d	d
|d d d d@ d}| r|\}}| \}}}	}
||| || |	| |
| f}|S tdrtd\}}t| tdd|g t	|}|
  t| | r|| }|  |S |S tjjsd}t|tj|\}}td||d	d|d d d}| r|| }|S )Ndarwinz.pngscreencapturez-R,z-xwin32RGBrawBGRr      zgnome-screenshotz-fz$Pillow was built without XCB supportBGRX   r   )sysplatformtempfilemkstemposclose
subprocesscallr   openloadunlinkresizecoregrabscreen_win32	frombytescropshutilwhichHAVE_XCBOSErrorgrabscreen_x11)bboxinclude_layered_windowsall_screensxdisplayfhfilepathargslefttoprightbottomim
im_resizedoffsetsizedatax0y0
im_croppedmsg r9   H/var/www/html/scripts/venv/lib/python3.10/site-packages/PIL/ImageGrab.pygrab   sn   

*




"





r;   c                  C   s  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rdd l}||}|dkrddlm} ||S |dkrddlm} ||S d S tdrdg}ntdrg d}nd}t |t \} }tj|| d t|  t
|}|  t| |S )Nr   z.jpgz,set theFile to (open for access POSIX file "z" with write permission)tryz4    write (the clipboard as JPEG picture) to theFilezend tryzclose access theFile	osascriptz-er   r   fileI   zutf-16le mbcs pngr   )PngImagePluginDIB)BmpImagePluginzwl-pastexclip)rH   z
-selection	clipboardz-tz	image/pngz-ozDwl-paste or xclip is required for ImageGrab.grabclipboard() on Linux)stdout)!r   r   r   r   r   r   r   r   statst_sizer   r   r   r   r   grabclipboard_win32structunpack_fromdecodesplitindex
isinstancebytesioBytesIOrC   rE   PngImageFilerG   DibImageFiler    r!   NotImplementedError)r)   r*   commandsscriptcommandr0   fmtr4   rN   ofilesrU   rE   rG   r+   r8   r9   r9   r:   grabclipboardW   sn   

	













r`   )NFFN)	r   r    r   r   r   rC   r   r;   r`   r9   r9   r9   r:   <module>   s   
<