o
    Ñ­jÖ  ã                   @  sj   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„Z
ddd„ZdS )é    )ÚannotationsNé   )ÚImageFÚbboxú tuple[int, int, int, int] | NoneÚinclude_layered_windowsÚboolÚall_screensÚxdisplayú
str | NoneÚreturnúImage.Imagec              
   C  sD  |d u r¢t 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¢tj ||¡\}}}t d||d	d
|d d d d@ d¡}| r |\}}| \}}}	}
| || || |	| |
| f¡}|S |}ztjjs¯d}t|ƒ‚tj |¡\}}W nP t�y   |d u �rt jdv�rt d¡�rt d¡\}}t |¡ t dd|g¡ t 	|¡}| 
¡  t |¡ | �r| | ¡}| ¡  | Y S | Y S ‚ w t d||d	d|d d d¡}| �r | | ¡}|S )NÚdarwinú.pngÚscreencapturez-Rú,z-xÚwin32ÚRGBÚrawÚBGRr   é   éüÿÿÿéÿÿÿÿz$Pillow was built without XCB support)r   r   zgnome-screenshotz-fÚBGRXé   r   )ÚsysÚplatformÚtempfileÚmkstempÚosÚcloseÚ
subprocessÚcallr   ÚopenÚloadÚunlinkÚresizeÚcoreÚgrabscreen_win32Ú	frombytesÚcropÚHAVE_XCBÚOSErrorÚgrabscreen_x11ÚshutilÚwhich)r   r   r	   r
   ÚfhÚfilepathÚargsÚleftÚtopÚrightÚbottomÚimÚ
im_resizedÚoffsetÚsizeÚdataÚx0Úy0Údisplay_nameÚmsgÚ
im_cropped© rA   úJ/var/www/html/CropPilot/venv/lib/python3.10/site-packages/PIL/ImageGrab.pyÚgrab   s~   

*



ÿø
"
ÿ



î
rC   úImage.Image | list[str] | Nonec                  C  sd  t jdkrIt d¡\} }t | ¡ d| d ddddg}d	g}|D ]}|d
|g7 }q!t |¡ d }t |¡j	dkrBt
 |¡}| ¡  t |¡ |S t jdkr·t
j ¡ \}}|dkr�dd l}| d|¡d }	|d dkrx||	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   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 theFileÚ	osascriptz-er   r   ÚfileÚIé   zutf-16leú ÚmbcsÚ Úpngr   )ÚPngImagePluginÚDIB)ÚBmpImagePluginÚWAYLAND_DISPLAYÚwaylandÚDISPLAYÚx11úwl-paste)rR   N)rU   ú-tÚimageÚxclip)rT   N)rX   z
-selectionÚ	clipboardrV   z	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'   Úgrabclipboard_win32ÚstructÚunpack_fromÚdecodeÚsplitÚindexÚ
isinstanceÚbytesÚioÚBytesIOrL   rN   ÚPngImageFilerP   ÚDibImageFileÚgetenvr.   r/   ÚNotImplementedErrorÚrunÚ
returncodeÚstderrÚstripÚChildProcessErrorÚstdout)r0   r1   ÚcommandsÚscriptÚcommandr7   Úfmtr;   r^   ÚoÚfilesrN   rP   Úsession_typer2   r?   ÚpÚerrÚsilent_errorrA   rA   rB   Úgrabclipboardi   s†   

ÿþù	












ÿ
r{   )NFFN)
r   r   r   r   r	   r   r
   r   r   r   )r   rD   )Ú
__future__r   re   r   r.   r!   r   r   rL   r   rC   r{   rA   rA   rA   rB   Ú<module>   s   üL