U
    M»{jÖ  ã                   @  sr   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dd	d
œdd„Z
ddœdd„ZdS )é    )ÚannotationsNé   )ÚImageFz tuple[int, int, int, int] | NoneÚboolz
str | NonezImage.Image)ÚbboxÚinclude_layered_windowsÚall_screensÚxdisplayÚreturnc              
   C  sV  |d k�rJt jdkrÄt d¡\}}t |¡ dg}| rl| \}}}	}
|d|› d|› d|	| › d|
| › �g7 }t |d|g ¡ t 	|¡}| 
¡  t |¡ | rÀ| |	| |
| f¡}| ¡  |S |S t jdk�rJtj ||¡\}}}t d||d	d
|d d d d@ d¡}| �rF|\}}| \}}}	}
| || || |	| |
| f¡}|S |}z*tjj�sfd}t|ƒ‚tj |¡\}}W n¦ tk
�r   |d k�rt jdk�rt d¡�rt d¡\}}t |¡ t dd|g¡ t 	|¡}| 
¡  t |¡ | �r| | ¡}| ¡  | Y S | Y S ‚ Y n4X t d||d	d|d d d¡}| �rN| | ¡}|S d 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y0Údisplay_nameÚmsgZ
im_cropped© r4   úL/var/www/html/bwave/python/venv/lib/python3.8/site-packages/PIL/ImageGrab.pyÚgrab   s‚    


*

 ÿ
ø
"
ÿþý




r6   zImage.Image | list[str] | None)r
   c                  C  sŠ  t jdkr’t d¡\} }t | ¡ d| d ddddg}d	g}|D ]}|d
|g7 }qBt |¡ d }t |¡j	dkr„t
 |¡}| ¡  t |¡ |S t jdk�rxt
j ¡ \}}|dk�rdd l}| d|¡d }	|d dkrô||	d …  d¡ d¡}
n||	d …  d¡ d¡}
|
d |
 d¡… S t|tƒ�rtt |¡}|dk�rTddlm} | |¡S |dk�rtddlm} | |¡S d S t d¡�rŠd}nt d¡�rœd}nd }t  d¡�rÂ|dk�rÂddd g}n4t  d!¡�rê|d"k�rêd!d#d$dd%d&g}nd'}t!|ƒ‚tj"|d(d)�}|j#dk�rd|j$}d*D ]}||k�r d S �q|d › d+�}|�r\|d,| %¡  ¡ › �7 }t&|ƒ‚t |j'¡}t
 |¡}| ¡  |S d 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Úx11zwl-paste)r@   Nz-tÚimageZxclip)rA   Nz
-selectionÚ	clipboardz	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=   r>   ZPngImageFiler?   ZDibImageFileÚgetenvr%   r&   ÚNotImplementedErrorÚrunÚ
returncodeÚstderrÚstripÚChildProcessErrorÚstdout)r'   r(   ÚcommandsÚscriptÚcommandr.   Úfmtr1   rG   ÚoÚfilesr>   r?   Zsession_typer)   r3   ÚpÚerrZsilent_errorr4   r4   r5   Úgrabclipboardi   s„    

ÿþù	











r`   )NFFN)Ú
__future__r   rN   r   r%   r   r   r   r=   r   r6   r`   r4   r4   r4   r5   Ú<module>   s       üL