a
    ç´«jG  ã                   @  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d	d
ddœdd„Zddœdd„ZdS )é    )ÚannotationsNé   )ÚImageF)ÚImageWinz tuple[int, int, int, int] | NoneÚboolz
str | Nonezint | ImageWin.HWND | NonezImage.Image)ÚbboxÚinclude_layered_windowsÚall_screensÚxdisplayÚwindowÚreturnc              
   C  s¨  |d u �rht 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�rh|d urÜd}tj |||d uröt|ƒnd	¡\}}}t d
||dd|d	 d d d@ d¡}| �rd|\}}| \}}	}
}| || |	| |
| || f¡}|S |}z*tjj�s„d}t|ƒ‚tj |¡\}}W nÚ t�yp   |d u �rjt jdv�rjt d¡�rÒddg}n,t d¡�rædg}nt d¡�rüg d¢}n‚ t d¡\}}t |¡ t ||g ¡ t 	|¡}| 
¡  t |¡ | �rb| | ¡}| ¡  | Y S | Y S ‚ Y n40 t d
||dd|d	 d d¡}| �r | | ¡}|S d S )NÚdarwinz.pngZscreencapturez-Rú,z-xÚwin32éÿÿÿÿr   ÚRGBÚrawZBGRé   éüÿÿÿz$Pillow was built without XCB support)r   r   zgnome-screenshotú-fZgrimÚ	spectacle)r   z-nz-br   ú-oZBGRXé   r   )ÚsysÚplatformÚtempfileÚmkstempÚosÚcloseÚ
subprocessÚcallr   ÚopenÚloadÚunlinkÚresizeÚcoreZgrabscreen_win32ÚintÚ	frombytesÚcropZHAVE_XCBÚOSErrorZgrabscreen_x11ÚshutilÚwhich)r   r   r	   r
   r   ÚfhÚfilepathÚargsÚleftÚtopÚrightÚbottomÚimZ
im_resizedÚoffsetÚsizeÚdataZx0Zy0Zdisplay_nameÚmsgZ
im_cropped© r8   úL/var/www/html/laksyashrimp/venv/lib/python3.9/site-packages/PIL/ImageGrab.pyÚgrab!   sŒ    


*

ý
ø
"







r:   zImage.Image | list[str] | None)r   c                  C  sB  t jdkrVt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ràdd l}| d
|¡d }|d dkr¶||d …  d¡ d¡}n||d …  d¡ d¡}|d | d¡… S t|tƒ�r6t |¡}|dk�rddlm} | |¡S |dk�r6ddlm} | |¡S d S t d¡�rLd}	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 d 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)rF   N)rH   ú-tÚimageÚxclip)rG   N)rK   z
-selectionÚ	clipboardrI   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%   Zgrabclipboard_win32ÚstructÚunpack_fromÚdecodeÚsplitÚindexÚ
isinstanceÚbytesrC   rD   ZPngImageFilerE   ZDibImageFiler   Úgetenvr*   r+   ÚNotImplementedErrorÚstderrÚstripÚChildProcessErrorr"   )ÚprO   r6   ÚfmtrT   ÚoÚfilesrD   rE   Zsession_typer.   r7   ÚerrZsilent_errorr3   r8   r8   r9   Úgrabclipboardv   sj    
þ











re   )NFFNN)Ú
__future__r   rP   r   r*   r   r   r   rC   r   ÚTYPE_CHECKINGr   r:   re   r8   r8   r8   r9   Ú<module>   s"        ûU