K iUddlmZddlZddlmZddlmZddlmZdZ e rddl m Z dd l m Z dd lmZd ed <d ed<ddgddggZej#ddeD]C\ZZ ded<edk(rddlmZmZmZddlmZmZmZnedk(rddlmZmZmZddlmZmZmZdZ eZ!ndZ dZ!d#d$dZ"d%dZ#d&dZ$d'dZ%d(dZ&e r Gdd eZ'd)d!Z(d*d"Z)y#eef$rY~wxYw)+) annotationsN)BytesIO)Image)is_pathF)Callable)Any) ImageFiletypeQBufferz str | None qt_version6PyQt6side6PySide6c,|dtjvS)Nr)sysmodules)versions Q/mnt/ssd/data/python-lab/Trading/venv/lib/python3.12/site-packages/PIL/ImageQt.pyr*sWQZ3;;%>T)keyreversez#Callable[[int, int, int, int], int]qRgba)r QByteArray QIODevice)QImageQPixmaprc$t||||dzS)zA(Internal) Turns an RGB color into a Qt compatible color integer.l)r)rgbas rrgbr%Bs Aq! z ))rct}tdk(r ttd}nt}|j t|d|j r|j|dn|j|dt}|j|j|j|jdtj |S#t$rttd}YwxYw)z1 :param im: QImage or PIL ImageQt object r OpenModeFlagOpenMode ReadWritepngppmr)r r getattrrAttributeErroropenhasAlphaChannelsaverwritedatacloseseekr)imbuffer qt_openmoder#s r fromqimager8IsYFS 9!)^rcddddd|}||z}t|d\}}||rdndz}| dz}|s|Stt||zD cgc]} || |z| dz|zd|zz} } dj| Scc} w) zE converts each scanline of data from 8 bit to 32 bit aligned r)1LPI;16rr)divmodrangelenjoin) byteswidthmodebits_per_pixel bits_per_linefull_bytes_per_lineremaining_bits_per_linebytes_per_line extra_paddinginew_datas r align8to32rUjs 11b9$?N#U*M39-3K00(1HAaPN#Oa'M  s5z^34  a. AE^#;.s CrFormat_Grayscale16zunsupported image mode )r2sizeformat colortable)hasattrstrrWrrr. isinstancer r,rrLrGr% getpaletterHconverttobytespointr3repr ValueErrorrfrU) r5r2rh exclusive_fp qt_formatrgrSpalettemsgrf__datas r_toqclass_helperrws DJLr8 g &r{ ZZ^ b%++ && &-73->)FI ww#~M2 C$56,1#J7qc!Ql7 7 C$56--/"""8=aWq8QR1c71q1u-.R R E  ZZ zz%(N3 F zz%(O4 F  XX' ($89  HHJ'RWW 7o 77D  ?Z d1grww?F  DF* UU;8 Ss I'.I,c eZdZdfd ZxZS)ImageQtct|}|d|_t| |j|dd|dd|d|dr|j |dyy)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). r2rfrrrgrhN)rw_ImageQt__datasuper__init__ setColorTable)selfr5im_data __class__s rr}zImageQt.__init__sr'r*G "&/DK G  ""!   |$""7<#89%r)r5Image.Image | str | QByteArrayreturnNone)__name__ __module__ __qualname__r} __classcell__)rs@rryrys  : :rryct|Sr:)ryr;s rtoqimagers 2;rczt|}ttd|}tdk(r|j |S)N fromImager)rr,rr detach)r5qimagepixmaps r toqpixmaprs4 b\F *WWk *6 2FS  Mr)) r!intr"rr#rr$rrr)r5zQImage | QPixmaprImageFile.ImageFile)r5rrr)rJrJrKrrLrjrrJ)r5rrzdict[str, Any])r5rrry)r5rrr)* __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%r8r<rUrwryrrrdrrrs$#  ( M 'N i  >M%GY 22   C C : : ) #   = <OJ #&OJ*:40Vf:&:2}  &s#8CCC