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
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
U
T±d5<ã@s.ddlZddlZddlZddlZddlZddlZddlmZmZddl    m
Z ddl m Z e d¡Ze d¡ZdZej d¡r¨ddlZd    D]Ze e¡dk    rˆeZq¨qˆd
Zd d „Zdd d„ZGdd„dƒZdd„ZGdd„dejƒZddd„Ze ejee¡e eje¡e  ejddg¡e !ejd¡dS)éNé)ÚImageÚ    ImageFile)Úi32le)Ú    deprecatez^%%([^:]*):[ \t]*(.*)[ \t]*$z^%[%!\w]([^:]*)[ \t]*$Úwin)Zgswin32cZgswin64cÚgsFcCsHtrdStj d¡sDztjddgtjdWdStk
rBYnXdS)NTrrz    --version)ÚstdoutF)Úgs_windows_binaryÚsysÚplatformÚ
startswithÚ
subprocessÚ
check_callÚDEVNULLÚOSError©rrúId:\z\workplace\vscode\pyvenv\venv\Lib\site-packages\PIL/EpsImagePlugin.pyÚhas_ghostscript4s rcCs\|d\}}}}|\}}    t|ƒp"d}|d||d|f}d|d|    d|    dd|d|    d|    df}
t ¡\} } t | ¡d} t|dƒr®tj |j¡r®|j}nt ¡\}} t |¡| }t    | dƒf}| 
dt j ¡|  ¡}| 
d¡|}|dkr4| t|d    ƒ¡}|sq4|t|ƒ8}| |¡qøW5QRX|rHd
nd }d d d|d|
dddd|›d| ›d|    d ›d|    d ›dd|ddg}tdk    r¾ts¶d}t|ƒ‚t|d<zNd}tj d¡rêt ¡}|jtjO_tj||dt     | ¡}| ¡W5zt | ¡| r*t | ¡Wntk
rBYnXX|j  ¡}| ¡|S)z!Render an image using GhostscriptrrgR@ééNÚnameÚwbiZpngalphaZppmrawrz-qz-g%dx%dz-r%fx%fz-dBATCHz    -dNOPAUSEz-dSAFERz    -sDEVICE=z -sOutputFile=z-cú z
 translatez-fZshowpagez%Unable to locate Ghostscript on pathsr)Ú startupinfo)!ÚintÚtempfileÚmkstempÚosÚcloseÚhasattrÚpathÚexistsrÚopenÚseekÚioÚSEEK_ENDÚtellÚreadÚminÚlenÚwriter
rÚunlinkr r r rÚ STARTUPINFOÚdwFlagsÚSTARTF_USESHOWWINDOWrrÚloadÚimÚcopy)ÚtileÚsizeÚfpÚscaleÚ transparencyÚdecoderÚoffsetÚdataÚlengthZbboxÚresZout_fdÚoutfileZ infile_tempÚinfileZin_fdÚfZfsizeZ
lengthfileÚsZdeviceÚcommandÚmsgrZout_imr1rrrÚ GhostscriptAs‚ þ 
 
 
 
 ï
 
 
 
rCc@s.eZdZdZdd„Zejfdd„Zdd„ZdS)    ÚPSFilez£
    Wrapper for bytesio object that treats either CR or LF as end of line.
    This class is no longer used internally, but kept for backwards compatibility.
    cCstdddd||_d|_dS)NrDé zSIf you need the functionality of this class you will need to implement it yourself.)Úaction)rr5Úchar)Úselfr5rrrÚ__init__©sýzPSFile.__init__cCsd|_|j ||¡dS©N)rGr5r$)rHr9Úwhencerrrr$³sz PSFile.seekcCst|jpdg}d|_|j d¡}|dkrFt|ƒrF| |¡|j d¡}q|j d¡|_|jdkrdd|_d |¡ d¡S)Nóró
úlatin-1)rGr5r(r*ÚappendÚjoinÚdecode)rHr@ÚcrrrÚreadline·s  
 
zPSFile.readlineN)    Ú__name__Ú
__module__Ú __qualname__Ú__doc__rIr%ÚSEEK_SETr$rSrrrrrD£s
rDcCs(|dd…dkp&t|ƒdko&t|ƒdkS)Néó%!PSìÅP§ )r*Úi32)ÚprefixrrrÚ_acceptÈsr^c@sHeZdZdZdZdZdddddœZd    d
„Zd d „Zddd„Z    dd„Z
dS)Ú EpsImageFilez.EPS File Parser for the Python Imaging LibraryZEPSzEncapsulated PostscriptÚLZLABÚRGBÚCMYK)rrrrYc
s&ˆ ˆj¡\}}ˆj |¡dˆ_dˆ_tdƒ}t|ƒ}d}d}‡fdd„}ˆj d¡}|dkrn|dkrАqnb|d    kr‚|dkrÐqLnN|dkrº|dtd
ƒkr¨d }    t    |    ƒ‚n|r¶|ƒd }d}|d||<|d7}qL|rZ|dtd
ƒksø|dd …dkr|ƒd }qLt
|d|…dƒ}
zt   |
¡} Wn4t jk
rX} zd }    t    |    ƒ| ‚W5d} ~ XYnX| rð|  dd¡\} }|ˆj| <| dkrXzRdd„|  ¡Dƒ}|d|d|d|dfˆ_ddˆj|||ffgˆ_Wntk
rìYnXnht  |
¡} | r<|  d¡} | dd…dkr0| dd…ˆjd<n
dˆj| <n|
dd
krLn d}    t|    ƒ‚n¢|dd…dkrü|d|…  dd¡}dd„|dd …Dƒ\}}}}|dkr°d!ˆ_n>|dkrzˆj|ˆ_Wntk
ræYqYnXnq||fˆ_dSd}qL|ƒˆjs"d"ˆ_d#}    t|    ƒ‚dS)$NraéÿrTcs0dˆjkrd}t|ƒ‚dˆjkr,d}t|ƒ‚dS)NúPS-Adobez'EPS header missing "%!PS-Adobe" commentÚ BoundingBoxz*EPS header missing "%%BoundingBox" comment)ÚinfoÚ SyntaxError)rB©rHrrÚcheck_required_header_commentsçs 
 
z:EpsImageFile._open.<locals>.check_required_header_commentsrrLrMú%únot an EPS fileFé s %%EndCommentsrNrrecSsg|]}tt|ƒƒ‘qSr)rÚfloat)Ú.0ÚirrrÚ
<listcomp>*sz&EpsImageFile._open.<locals>.<listcomp>rÚeps©rrérdé    Úzbad EPS headerrEs %ImageData:écSsg|] }t|ƒ‘qSr)r)rnÚvaluerrrrpOsrYÚ1)rrz!cannot determine EPS bounding box)Ú _find_offsetr5r$ÚmodeÚ_sizeÚ    bytearrayÚ
memoryviewr(ÚordrgÚstrÚsplitÚmatchÚreÚerrorÚgrouprfr4r3Ú    ExceptionÚfieldrÚmode_mapÚ
ValueError)rHr;r9Zbyte_arrZbytes_mvÚ
bytes_readZreading_commentsriÚbyterBr@ÚmÚeÚkÚvZboxZimage_data_valuesÚcolumnsÚrowsZ    bit_depthZmode_idrrhrÚ_openÙs        
 "
 
"ÿ
 
 
 
 
ÿ
 
 
zEpsImageFile._opencCsl| d¡}|dkr.| dtj¡| ¡}d}n6t|ƒdkrX| d¡}t|ƒ}t|dƒ}n d}t|ƒ‚||fS)NrYrZrr[rsrk)r(r$r%r&r'r\rg)rHr5r@r;r9rBrrrryis
 
 zEpsImageFile._find_offsetrFcCsD|jr8t|j|j|j||ƒ|_|jj|_|jj|_g|_tj |¡SrJ)    r3rCr4r5r1rzr{rr0)rHr6r7rrrr0€s 
 
zEpsImageFile.loadcOsdSrJr)rHÚargsÚkwargsrrrÚ    load_seek‰szEpsImageFile.load_seekN)rF) rTrUrVrWÚformatÚformat_descriptionr‡r‘ryr0r”rrrrr_Ñs
    r_cCs˜| ¡|jdkrd}n,|jdkr(d}n|jdkr8d}n d}t|ƒ‚|r¨| d¡| d    ¡| d
|j¡| d ¡| d ¡| d ¡| d|j¡| d|¡| d¡| d¡| d|jd|d¡| d|j¡| d|j¡| d|jd|jd|jdf¡| d¡| |dd¡t|dƒrN| ¡t ||dd|jddfg¡| d¡| d ¡t|dƒr”| ¡dS)!z*EPS Writer for the Python Imaging Library.r`)rsrsimagera)rsrsfalse 3 colorimagerb)rsrYsfalse 4 colorimagezimage mode is not supporteds%!PS-Adobe-3.0 EPSF-3.0
s%%Creator: PIL 0.1 EpsEncode
s%%%%BoundingBox: 0 0 %d %d
s %%Pages: 1
s%%EndComments
s %%Page: 1 1
s%%ImageData: %d %d s%d %d 0 1 1 "%s"
sgsave
s10 dict begin
s/buf %d string def
rrs %d %d scale
s%d %d 8
s[%d 0 0 -%d 0 %d]
s+{ currentfile buf readhexstring pop } bind
ró
ÚflushrqrrNs
%%%%EndBinary
s grestore end
)    r0rzrˆr+r4r r˜rÚ_save)r1r5ÚfilenamerqÚoperatorrBrrrr™’sB
 
 
 
 
 
 
 
 
 
&
 
 
 r™z.psz.epszapplication/postscript)rF)r)"r%rr‚rr rrurrÚ_binaryrr\Z
_deprecaterÚcompiler€r†r
r r ÚshutilÚbinaryÚwhichrrCrDr^r_r™Z register_openr•Z register_saveZregister_extensionsZ register_mimerrrrÚ<module>s:  
 
 
b%    B
4