)EjUddlmZddlZddlmZddlmZddlmZdZ e rddl m Z dd l m Z dd lmZd ed <d ed<ddgddggZeddeD]S\ZZ ded<edkrddlmZmZmZddlmZmZmZnedkrddlmZmZmZddlmZmZmZn #eef$rYJwxYwdZ eZ!ndZ dZ!d4d5d!Z"d6d%Z#d7d'Z$d8d,Z%d9d/Z&e rGd0d1eZ'd:d2Z(d;d3Z)dS)<) annotationsN)BytesIO)Image)is_pathF)Callable)Any) ImageFiletypeQBufferz str | None qt_version6PyQt6side6PySide6c*|dtjvS)Nr)sysmodules)versions =C:\PYTHON\MyICR_Suite\python\Lib\site-packages\PIL/ImageQt.pyr*sWQZ3;%>T)keyreversez#Callable[[int, int, int, int], int]qRgba)r QByteArray QIODevice)QImageQPixmaprrintgbareturnc,t||||dzS)zA(Internal) Turns an RGB color into a Qt compatible color integer.l)r)r!r#r$r%s rrgbr(Bs Aq!  z ))rimQImage | QPixmapImageFile.ImageFilecft}tdkr< ttd}n,#t$rttd}Yn wxYwt}|t|d|r||dn||dt}| | | | dtj|S)z1 :param im: QImage or PIL ImageQt object r OpenModeFlagOpenMode ReadWritepngppmr)r r getattrrAttributeErroropenhasAlphaChannelsaverwritedatacloseseekr)r)buffer qt_openmoder$s r fromqimager=Is YYFS 9!)^<>rbyteswidthmodestrc ddddd|}||z}t|d\}}||rdndz dz sS fdttzD}d|S) zE converts each scanline of data from 8 bit to 32 bit aligned r)1LPI;16rcBg|]}|z|dzzdzzS)r).0irBbytes_per_line extra_paddings r zalign8to32..|sK  a. AE^#;;.s"777qc!Qll777rrKc8g|]}t||dzS)rh)rQrRpalettes rrUz$_toqclass_helper..s+RRR1c71q1u9-.RRRrrrkRGBRGBArawBGRA Format_RGB32 Format_ARGB32rLc |dzS)NrirP)rRs rrz"_toqclass_helper..s CrFormat_Grayscale16zunsupported image mode )r8sizeformat colortable)hasattrrErcrrr4 isinstancer r2rrDrW getpaletterXconverttobytespointr9repr ValueErrorrur_) r)r8rw exclusive_fp qt_formatrvmsgru__datarls @r_toqclass_helperrsu DJLr8' g & &r{{ Z^^ b%+ & &&& &-73->->)))FI w#~~M22 C$56677E#JJ777 C$566--//"""RRRRaWq8Q8QRRR E   ZZ  zz%((N33 F  zz%((O44 F   XX'' ( ($899   HHJJJ7RW 77oo 7D  ?Z d1grw??F  DF* U UUrc eZdZdfd ZxZS)ImageQtr)r`r&Nonect|}|d|_t|j|dd|dd|d|dr||ddSdS)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). r8rurrrvrwN)r_ImageQt__datasuper__init__ setColorTable)selfr)im_data __class__s rrzImageQt.__init__s'r**G "&/DK GG   ""!     |$ :""7<#899999 : :r)r)r`r&r)__name__ __module__ __qualname__r __classcell__)rs@rrrs= : : : : : : : : : :rrc t|Sr?)rr@s rtoqimagers 2;;rct|}ttd|}tdkr||S)N fromImager)rr2rr detach)r)qimagepixmaps r toqpixmaprsC b\\F *WWk * *6 2 2FS  Mr)r ) r!r"r#r"r$r"r%r"r&r")r)r*r&r+)r)rr&r+)rBrBrCr"rDrEr&rB)r)r`r&ra)r)r`r&r)r)r`r&r)* __future__rriorr_utilr TYPE_CHECKINGcollections.abcrtypingr r __annotations__ qt_versionssortr qt_module PyQt6.QtCorer rr PyQt6.QtGuirrrPySide6.QtCore PySide6.QtGui ImportError RuntimeErrorqt_is_installedr r(r=rAr_rrrrrPrrrs$#""""""  ((((((MMM'N i  >>MMM%GY 2222    C C C C C C C C C C : : : : : : : : : : : ) # #           = < < < < < < < < <  &OJ EOJ*****:40V0V0V0Vf::::::&:::2s&:B!!B+*B+