o
    sh                      @  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 n_ ty&   |d u r%t jdvr%tdrdd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}| r>|| }|S )Ndarwinz.pngscreencapturez-R,z-xwin32r   RGBrawBGR   z$Pillow was built without XCB support)r   r   zgnome-screenshot-f	spectacle)r   z-nz-br   -oBGRX   r   )sysplatformtempfilemkstemposclose
subprocesscallr   openloadunlinkresizecoregrabscreen_win32int	frombytescropHAVE_XCBOSErrorgrabscreen_x11shutilwhich)r   r   r
   r   r   fhfilepathargslefttoprightbottomim
im_resizedoffsetsizedatax0y0display_namemsg
im_cropped rG   a/var/www/html/construction_image-detection-poc/venv/lib/python3.10/site-packages/PIL/ImageGrab.pygrab!   s   

*




"








rI   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   zutf-16le mbcs pngr   )PngImagePluginDIB)BmpImagePluginWAYLAND_DISPLAYwaylandDISPLAYx11wl-paste)rZ   N)r]   -timagexclip)r\   N)r`   z
-selection	clipboardr^   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,   grabclipboard_win32structunpack_fromdecodesplitindex
isinstancebytesrT   rV   PngImageFilerX   DibImageFiler$   getenvr4   r5   NotImplementedErrorstderrstripChildProcessErrorr)   )prd   rA   fmtrj   ofilesrV   rX   session_typer8   rE   errsilent_errorr=   rG   rG   rH   grabclipboardt   sl   












r   )NFFNN)r   r   r   r	   r
   r	   r   r   r   r   r   r   )r   rJ   )
__future__r   re   r$   r4   r&   r    r"   rT   r   TYPE_CHECKINGr   rI   r   rG   rG   rG   rH   <module>   s$   S