a :jgl @s6UddlmZddlZddlmZddlmZmZmZm Z ddl m Z ddl m Z erddlZddlZddl mZd ed <e ejjejjfZe ejjejjfZe ejjejjfZe ejjejjfZd ed <d dgddggZejddddeD]\ZZzjded<edkr:ddlmZmZddlmZmZmZn.edkrhddl mZmZddl!mZmZmZWne"e#fyYqYn0dZ$eZ%qqdZ$dZ%d6ddddddddZ&dd d!d"d#Z'd$d d!d%d&Z(d'dd(d'd)d*d+Z)d,d-d!d.d/Z*e$rGd0d1d1eZ+d,d1d!d2d3Z,d,d$d!d4d5Z-dS)7) annotationsN)BytesIO) TYPE_CHECKINGAnyCallableUnion)Image)is_path) ImageFiletypeQBufferz str | None qt_version6PyQt6Zside6PySide6cCs|dtjvS)Nr)sysmodules)versionr5/usr/local/lib/python3.9/site-packages/PIL/ImageQt.py.rT)keyreversez#Callable[[int, int, int, int], int]qRgba)r QIODevice)QImageQPixmaprFint)rgbareturncCst||||d@S)zA(Internal) Turns an RGB color into a Qt compatible color integer.l)r)r!r"r#r$rrrrgbBsr&zQImage | QPixmapzImageFile.ImageFileimr%cCst}tdkr|szalign8to32..r)divmodrangelenjoin)r7r9r:Zbits_per_pixelZ bits_per_lineZfull_bytes_per_lineZremaining_bits_per_lineZnew_datarrFr align8to32js rLImage.Image | str | QByteArrayzdict[str, Any]c sd}d}d}t|dr$t|d}t|r:t|}d}t|tjsJJtdkr\tt dnt }|j dkrxt|d}n|j d krt|d }d d t d D}n|j dkrt|d }| dusJfdd t dt dD}n|j dkr|d}|dd}t|d}np|j dkr:|dd}t|d}nL|j dkr`|dd}t|d}n&|rn|dt|j }t||j}|pt||d|j }|r|||||dS)NFtoUtf8zutf-8TrZFormatr=Z Format_Monor>ZFormat_Indexed8cSsg|]}t|||qSrr&rCrrrrGrz$_toqclass_helper..r?cs g|]}t||dqS)rOrCpaletterrrGrrrQRGBZRGBArawZBGRAZ Format_RGB32Z Format_ARGB32r@cSs|dS)NrPr)rErrrrrz"_toqclass_helper..ZFormat_Grayscale16zunsupported image mode )r/sizeformat colortable)hasattrr8rNr r r, isinstancerr*rr:rIZ getpaletterJconverttobytespointr0repr ValueErrorrVrL) r(r/rXZ exclusive_fpZ qt_formatrWmsgrVZ__datarrRr_toqclass_helpersN                  racs$eZdZdddfdd ZZS)ImageQtrMNoner'csTt|}|d|_t|j|dd|dd|d|drP||ddS)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/rVrrrWrXN)raZ_ImageQt__datasuper__init__Z setColorTable)selfr(Zim_data __class__rrres   zImageQt.__init__)__name__ __module__ __qualname__re __classcell__rrrgrrbsrbcCst|Sr4)rbr5rrrtoqimagesrmcCst|}ttd|S)NZ fromImage)rmr*r)r(Zqimagerrr toqpixmapsrn)r). __future__rriortypingrrrrr Z_utilr rrr __annotations__ZQtCoreZ QByteArrayrZQtGuirrZ qt_versionssortrZ qt_moduleZ PyQt6.QtCorer Z PyQt6.QtGuirZPySide6.QtCoreZ PySide6.QtGui ImportError RuntimeErrorZqt_is_installedrr&r3r6rLrarbrmrnrrrrsX        3