o
    »Ùøi¶  ã                   @  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rêt 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r×t d¡\}}t |¡ ddt|ƒdd|g}t |¡}|r�t 	||¡‚t
 |¡�}|j|j d	k}W d   ƒ n1 s¥w   Y  t |¡ |rÌ| \}}	}
}|j|
| ||	 ftd
d„ | D ƒƒd�}n| | ¡}| ¡  |S | |
| ||	 f¡}| ¡  |S |S t jdk�r=|d uröd}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 �rÉt jdv�rÉt d¡�rrddg}nt d¡�r|dg}nt d¡�r‡g d¢}n‚ t d¡\}}t |¡ | |¡ t |¡}|�r§t 	||¡‚t
 |¡}| ¡  t |¡ | �rÅ| | ¡}| ¡  | Y S | Y S ‚ w t
 d||dd|d d d¡}| �râ| | ¡}|S )NÚdarwinz.pngÚscreencapturez-lz-Rú,z-xú-oéd   c                 s  s   � | ]}|d  V  qdS )é   N© )Ú.0Úcoordr   r   úZ/home/develop/edictos_py/central_edictos/env/lib/python3.10/site-packages/PIL/ImageGrab.pyÚ	<genexpr>O   s   € zgrab.<locals>.<genexpr>)ÚboxÚwin32éÿÿÿÿr   ÚRGBÚrawÚBGRé   éüÿÿÿz$Pillow was built without XCB support)r   r   zgnome-screenshotú-fÚgrimÚ	spectacle)r&   z-nz-br$   r   ÚBGRXé   r   )ÚsysÚplatformÚtempfileÚmkstempÚosÚcloseÚstrÚ
subprocessÚcallÚCalledProcessErrorr   ÚopenÚloadÚunlinkÚwidthÚresizeÚtupleÚcropÚcoreÚgrabscreen_win32ÚintÚ	frombytesÚHAVE_XCBÚOSErrorÚgrabscreen_x11ÚshutilÚwhichÚappend)r   r   r
   r   r   ÚfhÚfilepathÚargsÚleftÚtopÚrightÚbottomÚretcodeÚimÚim_no_shadowÚretinaÚ
im_croppedÚ
im_resizedÚoffsetÚsizeÚdataÚx0Úy0Údisplay_nameÚmsgr   r   r   Úgrab!   sÆ   


*




ÿ
þ

ýø
"








ç
rX   ú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r™t
j ¡ \}}|d	krodd l}| d
|¡d }|d dkrZ||d …  d¡ d¡}n||d …  d¡ d¡}|d | d¡… S t|tƒr—t |¡}|dkrˆddlm} | |¡S |dkr—ddlm} | |¡S d S t d¡r¡d}	n
t d¡r©d}	nd }	t d¡r¹|	dv r¹g d¢}
nt d¡rÇ|	dv rÇg 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é   Úmbcsú zutf-16leÚ Úpngr   )ÚPngImagePluginÚDIB)ÚBmpImagePluginÚWAYLAND_DISPLAYÚwaylandÚDISPLAYÚx11úwl-paste)ri   N)rl   ú-tÚimageÚxclip)rk   N)ro   z
-selectionÚ	clipboardrm   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*   r0   ÚrunÚ
returncodeÚbinasciiÚioÚBytesIOÚ	unhexlifyÚstdoutr   r3   r:   Úgrabclipboard_win32ÚstructÚunpack_fromÚdecodeÚsplitÚindexÚ
isinstanceÚbytesrc   re   ÚPngImageFilerg   ÚDibImageFiler-   ÚgetenvrA   rB   ÚNotImplementedErrorÚstderrÚstripÚChildProcessErrorr4   )Úprs   rS   Úfmtry   ÚoÚfilesre   rg   Úsession_typerF   rW   ÚerrÚsilent_errorrL   r   r   r   Úgrabclipboard™   sl   
þ










ÿ
rŽ   )NFFNN)r   r   r   r	   r
   r	   r   r   r   r   r   r   )r   rY   )Ú
__future__r   rt   r-   rA   r0   r)   r+   rc   r   ÚTYPE_CHECKINGr   rX   rŽ   r   r   r   r   Ú<module>   s$   ûx