o
    j                     @  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}|d ur&|dt|g7 }n| rC| \}}	}
}|d| d|	 d|
|  d||	  g7 }|d|g7 }t|}|rVt	||t
|}|  t| | r|d urtd\}}t| ddt|dd|g}t|}|rt	||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rt|nd\}}}t
d||dd|d d d d@ d}| r;|\}}| \}}	}
}||| |	| |
| || f}|S |}zt
jjsKd}t|t
j|\}}W nv ty   |d u rt jdvrtdrrddg}ntdr|dg}ntdrg d}n td\}}t| || t|}|rt	||t
|}|  t| | r|| }|  | Y S | Y S  w t
d||dd|d d d}| r|| }|S )Ndarwinz.pngZscreencapturez-lz-R,z-x-od   c                 s  s    | ]}|d  V  qdS )   N ).0Zcoordr   r   N/var/www/html/Deteccion_Ine/venv/lib/python3.10/site-packages/PIL/ImageGrab.py	<genexpr>O   s    zgrab.<locals>.<genexpr>)boxwin32r   RGBrawZBGR   z$Pillow was built without XCB support)r   r   zgnome-screenshot-fZgrim	spectacle)r"   z-nz-br!   r   ZBGRX   r   )sysplatformtempfilemkstemposclosestr
subprocesscallCalledProcessErrorr   openloadunlinkwidthresizetuplecropcoreZgrabscreen_win32int	frombytesZHAVE_XCBOSErrorZgrabscreen_x11shutilwhichappend)r   r   r
   r   r   fhfilepathargslefttoprightbottomretcodeimZim_no_shadowZretinaZ
im_croppedZ
im_resizedoffsetsizedataZx0Zy0display_namemsgr   r   r   grab!   s   


*








"









rJ   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)rW   N)rY   -timagexclip)rX   N)r\   z
-selection	clipboardrZ   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.   r5   Zgrabclipboard_win32structunpack_fromdecodesplitindex
isinstancebytesrT   rU   ZPngImageFilerV   ZDibImageFiler(   getenvr9   r:   NotImplementedErrorstderrstripChildProcessErrorr/   )pr`   rG   fmtre   ofilesrU   rV   Zsession_typer>   rI   errZsilent_errorrD   r   r   r   grabclipboard   sl   












rv   )NFFNN)r   r   r   r	   r
   r	   r   r   r   r   r   r   )r   rK   )
__future__r   ra   r(   r9   r+   r$   r&   rT   r   TYPE_CHECKINGr   rJ   rv   r   r   r   r   <module>   s$   x