
    th                     \   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 )    N)BytesIO   )Image)is_path6PyQt6side6PySide6c                 *    | d         t           j        v S )Nr   )sysmodules)
qt_versions    _/var/www/html/mycamper/aliexpress-site/backend/venv/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   1   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   
fromqimager1   8   s     YYFS	-#0KK 	- 	- 	-#,KKK	-  
KK%&&& 
 

		AGGFKKMM
LLNNNFF1III:a==s   ( A Ac                      t          |           S N)r1   r.   s    r   fromqpixmapr5   T   s    b>>r   c                 <   ddddd|         }||z  }t          |d          \  }}||rdndz   }| dz  }|s| S g }	t          t          |           |z            D ].}
|	                    | |
|z  |
dz   |z           d|z  z              /d                    |	          S )	zE
    converts each scanline of data from 8 bit to 32 bit aligned
    r         )1LPI;16r          r   )divmodrangelenappendjoin)byteswidthmodebits_per_pixelbits_per_linefull_bytes_per_lineremaining_bits_per_linebytes_per_lineextra_paddingnew_datais              r   
align8to32rO   b   s    
 11b99$?N #U*M39-3K3K00(1H,OAAaPN#Oa'M  H3u::/00 
 
!n$A'??@%&	
 	
 	
 	

 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
        }n| j	        dk    rA|j        }g }t          d          D ]&}|                    t          |||                     'nM| j	        d	k    rf|j        }g }|                                 }t          d
t!          |          d          D ])}|                    t          |||dz                        *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t1          | j	                   }t3          |          | j        }	|p-t7          |                                 |	d
         | j	                  }
|r|                                  |
|	||dS )NFtoUtf8zutf-8Tr   r9   r:      r;   r      RGBRGBArawBGRAr<   Format_Grayscale16c                     | dz  S )NrR    )rN   s    r   r   z"_toqclass_helper.<locals>.<lambda>   s
    C r   zunsupported image mode )r+   sizeformat
colortable)hasattrstrrQ   r   r   r&   r   r   FormatrF   Format_MonoFormat_Indexed8r@   rB   r   
getpaletterA   converttobytesFormat_RGB32Format_ARGB32pointrX   r,   repr
ValueErrorr[   rO   )r.   r+   r]   exclusive_fp	qt_formatr\   rN   palettemsgr[   __datas              r   _toqclass_helperrp   ~   sv   DJL r8 'g&&r{{ Z^^!+s!2!2I	w#~~&	C*
s 	, 	,Ac!Qll++++	,	C*
--//q#g,,** 	8 	8Ac71q1u9#567777	8	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+   r[   r   r   r\   r]   N)rp   _ImageQt__datasuper__init__setColorTable)selfr.   im_data	__class__s      r   rv   zImageQt.__init__   s     'r**G
 "&/DKGG""!	   |$ :""7<#899999: :r   )__name__
__module____qualname__rv   __classcell__)rz   s   @r   rr   rr      s8        	: 	: 	: 	: 	: 	: 	: 	: 	:r   rr   c                      t          |           S r3   )rr   r4   s    r   toqimager      s    2;;r   c                 H    t          |           }t          j        |          S r3   )r   r   	fromImage)r.   qimages     r   	toqpixmapr      s     
 b\\FV$$$r   )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   r1   r5   rO   rp   rr   r   r   rZ   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    82V 2V 2Vj  :: : : : :& : : :2  % % % % %s   1A11A;:A;