
    Rfq                    h   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gd	d
ggZ	e	
                    d d           e	D ]H\  ZZ	 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 Aw xY wd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 Zd Z dS )    )annotationsN)BytesIO   )Image)is_path6PyQt6side6PySide6c                *    | d         t           j        v S )Nr   )sysmodules)
qt_versions    =/var/www/html/env/lib/python3.11/site-packages/PIL/ImageQt.py<lambda>r       s    
1(D     T)keyreverse)QBuffer	QIODevice)QImageQPixmapqRgbaF   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    2   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   
fromqimager2   9   s     YYFS	-#0KK 	- 	- 	-#,KKK	-  
KK%&&& 
 

		AGGFKKMM
LLNNNFF1III:a==s   ( A Ac                     t          |           S N)r2   r/   s    r   fromqpixmapr6   U   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>k   sK        	a. AE^#;;<w?VV  r   r   )divmodrangelenjoin)
rD   widthmodebits_per_pixelbits_per_linefull_bytes_per_lineremaining_bits_per_linenew_datarE   rF   s
   `       @@r   
align8to32rS   Y   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
        }nZ| 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        }nu| j	        dk    r.t          |d          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 rA   r    )rB   rC   s     r   rG   z$_toqclass_helper.<locals>.<listcomp>   s"    777qc!Qll777r      r<   c                8    g | ]}t          ||d z             S )   rW   )rB   rC   palettes     r   rG   z$_toqclass_helper.<locals>.<listcomp>   s+    RRR1c71q1u9-.RRRr   r   rZ   RGBRGBArawBGRAr=   Format_Grayscale16c                    | dz  S )NrX   rA   )rC   s    r   r   z"_toqclass_helper.<locals>.<lambda>   s
    C r   zunsupported image mode )r,   sizeformat
colortable)hasattrstrrU   r   r   r'   r   r   FormatrM   Format_MonoFormat_Indexed8rI   
getpaletterJ   converttobytesFormat_RGB32Format_ARGB32pointr`   r-   repr
ValueErrorrb   rS   )
r/   r,   rd   exclusive_fp	qt_formatrc   msgrb   __datar[   s
            @r   _toqclass_helperrv   s   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		wy2FGG	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,   rb   r   r   rc   rd   N)rv   _ImageQt__datasuper__init__setColorTable)selfr/   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   rx   rx      s8        	: 	: 	: 	: 	: 	: 	: 	: 	:r   rx   c                     t          |           S r4   )rx   r5   s    r   toqimager      s    2;;r   c                H    t          |           }t          j        |          S r4   )r   r   	fromImage)r/   qimages     r   	toqpixmapr      s    b\\FV$$$r   )r   )!
__future__r   r   ior    r   _utilr   qt_versionssortr   	qt_modulePyQt6.QtCorer   r   PyQt6.QtGuir   r   r   PySide6.QtCorePySide6.QtGuiImportErrorRuntimeErrorqt_is_installedr    r2   r6   rS   rv   rx   r   r   rA   r   r   <module>r      s  $ # " " " " " 



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