zmc
2023-08-08 e792e9a60d958b93aef96050644f369feb25d61b
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
U
T±dÏã
@sÒddlZddlmZddlmZddlmZddlmZddgd    d
gd d gd dggZ    e    j
dd„dde    D]\Z Z zÖe dkr¤ddl mZmZddlmZmZmZn¤e d
krÒddlmZmZddlmZmZmZnve d krddlmZmZddlmZmZmZedddƒn:e dkrHddlmZmZddlmZmZmZedddƒWneefk
rhYqjYnXdZq~qjdZdZ d+dd„Zdd„Zdd „Zd!d"„Z d#d$„Z!er¾Gd%d&„d&eƒZ"d'd(„Z#d)d*„Z$dS),éN)ÚBytesIOé)ÚImage)Ú    deprecate)Úis_pathÚ6ZPyQt6Zside6ZPySide6Ú5ZPyQt5Zside2ZPySide2cCs|dtjkS)Nr)ÚsysÚmodules)Ú
qt_version©r úBd:\z\workplace\vscode\pyvenv\venv\Lib\site-packages\PIL/ImageQt.pyÚ<lambda>"órT)ÚkeyÚreverse)ÚQBufferÚ    QIODevice)ÚQImageÚQPixmapÚqRgbazSupport for PyQt5é
zPyQt6 or PySide6zSupport for PySide2FéÿcCst||||ƒd@S)zA(Internal) Turns an RGB color into a Qt compatible color integer.lÿÿ)r)ÚrÚgÚbÚar r r Úrgb>srcCs˜tƒ}tdkr6z
tj}Wq:tk
r2tj}Yq:Xnt}| |j¡| ¡r\|     |d¡n |     |d¡t
ƒ}|  |  ¡¡|  ¡| d¡t |¡S)z1
    :param im: QImage or PIL ImageQt object
    rZpngÚppmr)rr rZ OpenModeFlagÚAttributeErrorZOpenModeÚopenZ    ReadWriteZhasAlphaChannelÚsaverÚwriteÚdataÚcloseÚseekr)ÚimÚbufferZ qt_openmoderr r r Ú
fromqimageEs 
 
r(cCst|ƒS©N)r(©r&r r r Ú fromqpixmapasr+c Cs”dddddœ|}||}t|dƒ\}}||r2dnd}| d}|sJ|Sg}    tt|ƒ|ƒD]*}
|     ||
||
d|…d|¡q^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ÚmodeZbits_per_pixelZ bits_per_lineZfull_bytes_per_lineZremaining_bits_per_lineZbytes_per_lineZ extra_paddingZnew_dataÚir r r Ú
align8to32os
ÿÿr=c CsÀd}d}d}t|dƒr$t| ¡dƒ}t|ƒr:t |¡}d}tdkrHtjnt}|j    dkr`|j
}n"|j    dkr–|j }g}t dƒD]}|  t|||ƒ¡q|nì|j    d    krä|j }g}| ¡}t d
t|ƒd ƒD]}|  t|||d …Ž¡qÂnž|j    d kr| d ¡}| dd¡}|j}nt|j    d kr.| dd¡}|j}nT|j    dkr\t|dƒr\| dd„¡}|j}n&|rj| ¡dt|j    ƒ›}t|ƒ‚|j}    |p¢t| ¡|    d
|j    ƒ}
|r²| ¡|
|    ||dœS)NFÚtoUtf8zutf-8Trr.r/ér0réÚRGBZRGBAÚrawZBGRAr1ÚFormat_Grayscale16cSs|dS)Nr?r )r<r r r r°rz"_toqclass_helper.<locals>.<lambda>zunsupported image mode )r#ÚsizeÚformatÚ
colortable)ÚhasattrÚstrr>rrr r rZFormatr;Z Format_MonoZFormat_Indexed8r5r7rZ
getpaletter6ÚconvertÚtobytesZ Format_RGB32Z Format_ARGB32ZpointrCr$ÚreprÚ
ValueErrorrDr=) r&r#rFZ exclusive_fpZ    qt_formatrEr<ZpaletteÚmsgrDZ__datar r r Ú_toqclass_helper‹sR
 
 
 
 
 
 
   rNcseZdZ‡fdd„Z‡ZS)ÚImageQtcsTt|ƒ}|d|_tƒ |j|dd|dd|d¡|drP| |d¡dS)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#rDrrrErFN)rNZ_ImageQt__dataÚsuperÚ__init__Z setColorTable)Úselfr&Zim_data©Ú    __class__r r rQÃs
 
 
üzImageQt.__init__)Ú__name__Ú
__module__Ú __qualname__rQÚ __classcell__r r rSr rOÂsrOcCst|ƒSr))rOr*r r r ÚtoqimageÛsrYcCst|ƒ}t |¡Sr))rYrZ    fromImage)r&Zqimager r r Ú    toqpixmapßsrZ)r)%r    ÚiorÚrZ
_deprecaterZ_utilrZ qt_versionsÚsortr Z    qt_moduleZ PyQt6.QtCorerrZ PyQt6.QtGuirrrZPySide6.QtCoreZ PySide6.QtGuiZ PyQt5.QtCoreZ PyQt5.QtGuiZPySide2.QtCoreZ PySide2.QtGuiÚ ImportErrorÚ RuntimeErrorZqt_is_installedrr(r+r=rNrOrYrZr r r r Ú<module>sR    ü
 
 
 
5