
     f                       U d dl mZ d dlZd dlmZ d dlmZ ddlmZ ddl	m
Z
 ded	<   d
dgddggZe                    d d           eD ]c\  ZZ	 ded<   ded<   ded<   ded<   ded<   edk    rd dlmZmZ d dlmZmZmZ nedk    rd dlmZmZ d dlmZmZmZ n# eef$ r Y Zw xY wdZeZ ndZdZd&dZd Zd Zd Z d  Z!er G d! d"e          Z"d'd$Z#d% Z$dS )(    )annotationsN)BytesIO)Callable   )Image)is_pathz
str | None
qt_version6PyQt6side6PySide6c                *    | d         t           j        v S )Nr   )sysmodules)versions    N/var/www/api.educacionweb.es/myenv/lib/python3.11/site-packages/PIL/ImageQt.py<lambda>r   "   s    WQZ3;%>     T)keyreversetypeQBuffer	QIODeviceQImageQPixmapz#Callable[[int, int, int, int], int]qRgba)r   r   )r   r   r   F   c                ,    t          | |||          dz  S )zA(Internal) Turns an RGB color into a Qt compatible color integer.l    )r   )rgbas       r   rgbr#   :   s     Aq!z))r   c                0   t                      }t          dk    r*	 t          j        }n## t          $ r t          j        }Y nw xY wt          }|                    |j                   |                                 r| 	                    |d           n| 	                    |d           t                      }|                    |                                           |                                 |                    d           t          j        |          S )z1
    :param im: QImage or PIL ImageQt object
    r
   pngppmr   )r   r	   r   OpenModeFlagAttributeErrorOpenModeopen	ReadWritehasAlphaChannelsaver   writedatacloseseekr   )imbufferqt_openmoder!   s       r   
fromqimager5   A   s     YYFS	-#0KK 	- 	- 	-#,KKK	-  
KK%&&& 
 

		AGGFKKMM
LLNNNFF1III:a==s   ( A Ac                     t          |           S N)r5   r2   s    r   fromqpixmapr9   ]   s    b>>r   c                    	 ddddd|         }||z  }t          |d          \  }}||rdndz    dz  		s S  	fdt          t                     z            D             }d                    |          S )	zE
    converts each scanline of data from 8 bit to 32 bit aligned
    r         )1LPI;16r      c                B    g | ]}|z  |d z   z           dz  z   S )r        ).0ibytesbytes_per_lineextra_paddings     r   
<listcomp>zalign8to32.<locals>.<listcomp>s   sK        	a. AE^#;;<w?VV  r   r   )divmodrangelenjoin)
rG   widthmodebits_per_pixelbits_per_linefull_bytes_per_lineremaining_bits_per_linenew_datarH   rI   s
   `       @@r   
align8to32rV   a   s    
 11b99$?N #U*M39-3K3K00(1H,OAAaPN#Oa'M       s5zz^344  H
 88Hr   c                ^  	 d }d }d}t          | d          r"t          |                                 d          } t          |           rt	          j        |           } d}t          dk    rt          j        nt          }| j	        dk    r	|j
        }nJ| j	        dk    r"|j        }d t          d	          D             }n| j	        d
k    rF|j        }|                                 		fdt          dt          	          d          D             }n| j	        dk    r3|                     d          } |                     dd          }|j        }n| j	        dk    r|                     dd          }|j        }ne| j	        dk    r|                     d           } |j        }n<|r|                                  dt-          | j	                   }t/          |          | j        }|p-t3          |                                 |d         | j	                  }|r|                                  ||||dS )NFtoUtf8zutf-8Tr
   r=   r>   c                0    g | ]}t          |||          S rD   r#   )rE   rF   s     r   rJ   z$_toqclass_helper.<locals>.<listcomp>   s"    777qc!Qll777r      r?   c                8    g | ]}t          ||d z             S )   rZ   )rE   rF   palettes     r   rJ   z$_toqclass_helper.<locals>.<listcomp>   s+    RRR1c71q1u9-.RRRr   r   r]   RGBRGBArawBGRAr@   c                    | dz  S )Nr[   rD   )rF   s    r   r   z"_toqclass_helper.<locals>.<lambda>   s
    C r   zunsupported image mode )r/   sizeformat
colortable)hasattrstrrX   r   r   r*   r	   r   FormatrP   Format_MonoFormat_Indexed8rL   
getpaletterM   converttobytesFormat_RGB32Format_ARGB32pointFormat_Grayscale16r0   repr
ValueErrorrd   rV   )
r2   r/   rf   exclusive_fp	qt_formatre   msgrd   __datar^   s
            @r   _toqclass_helperry   {   s   DJL r8 'g&&r{{ Z^^!+s!2!2I	w#~~&	C*77E#JJ777

	C*--//RRRRaWq8Q8QRRR

	E		ZZzz%(('	F		zz%(((	F		XX''((- 	HHJJJ7RW77oo7D?Z

d1grw??F 



DF*UUUr   c                       e Zd Z fdZ xZS )ImageQtc                   t          |          }|d         | _        t                                          | j        |d         d         |d         d         |d                    |d         r|                     |d                    dS dS )z
            An PIL image wrapper for Qt.  This is a subclass of PyQt's QImage
            class.

            :param im: A PIL Image object, or a file name (given either as
                Python string or a PyQt string object).
            r/   rd   r   r   re   rf   N)ry   _ImageQt__datasuper__init__setColorTable)selfr2   im_data	__class__s      r   r   zImageQt.__init__   s     'r**G
 "&/DKGG""!	   |$ :""7<#899999: :r   )__name__
__module____qualname__r   __classcell__)r   s   @r   r{   r{      s8        	: 	: 	: 	: 	: 	: 	: 	: 	:r   r{   returnc                     t          |           S r7   )r{   r8   s    r   toqimager      s    2;;r   c                H    t          |           }t          j        |          S r7   )r   r   	fromImage)r2   qimages     r   	toqpixmapr      s    b\\FV$$$r   )r   )r   r{   )%
__future__r   r   ior   typingr    r   _utilr   __annotations__qt_versionssortr   	qt_modulePyQt6.QtCorer   r   PyQt6.QtGuir   r   r   PySide6.QtCorePySide6.QtGuiImportErrorRuntimeErrorqt_is_installedr	   r#   r5   r9   rV   ry   r{   r   r   rD   r   r   <module>r      sp  $ # " " " " " " 



                            'Ni   >>  M M M%  GY222277777777:::::::::::)##99999999<<<<<<<<<<&   OJ	EOJ* * * *  8    4.V .V .Vb  :: : : : :& : : :2   % % % % %s   A
BB&%B&