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
U
T±džã
@s¾ddlZddlmZmZmZddlmZddlmZddlm    Z
ddlm Z dd    d    d
d d d    d    d dœ    Z dd„ZGdd„dejƒZdd„Zdd„Ze ejee¡e ejd¡e ejd¡dS)éNé)ÚImageÚ    ImageFileÚ ImagePalette)Úi8)Úi16be)Úi32be)Úsi16be)Ú1r)ÚLr)ÚPr)ÚRGBé)ÚCMYKé)ZLABr)    )rr)ré)rr)ér)rr)rr)ér)rr)é    rcCs|dd…dkS)Nrs8BPS©)ÚprefixrrúId:\z\workplace\vscode\pyvenv\venv\Lib\site-packages\PIL/PsdImagePlugin.pyÚ_accept-src@s0eZdZdZdZdZdd„Zdd„Zdd    „Zd
S) Ú PsdImageFileZPSDzAdobe PhotoshopFcCsJ|jj}|dƒ}t|ƒr&t|dƒdkr2d}t|ƒ‚t|dƒ}t|dƒ}t|dƒ}t||f\}}||krtd}t|ƒ‚|d    krŒ|dkrŒd
}d}||_t|d ƒt|d ƒf|_    t|dƒƒ}    |    rÞ||    ƒ}
|d krÞ|    dkrÞt
  d|
¡|_ g|_ t|dƒƒ}    |    rž|j ¡|    } |j ¡| krž|dƒt|dƒƒ} |t|dƒƒƒ} t| ƒd@sN|dƒ|t|dƒƒƒ}
t|
ƒd@rt|dƒ|j  | | |
f¡| dkr|
|jd<qg|_t|dƒƒ}    |    r|j ¡|    } t|dƒƒ}    |    röt t |j|    ¡¡}t||    ƒ|_|j | ¡t|jƒ|_|jdk|_t|j|d|j|ƒ|_|j|_d|_ d|_!dS)Nérrznot a PSD fileéé éznot enough channelsr ÚRGBAéér izRGB;LriZ icc_profile)rr)"ÚfpÚreadrÚi16Ú SyntaxErrorÚMODESÚOSErrorÚmodeÚi32Ú_sizerÚrawZpaletteÚ    resourcesÚtellrÚlenÚappendÚinfoÚlayersÚioÚBytesIOrÚ
_safe_readÚ
_layerinfoÚseekZn_framesZ is_animatedÚ    _maketileÚsizeÚtileÚ_fpÚframeZ
_min_frame)Úselfr"ÚsÚmsgZpsd_bitsZ psd_channelsZpsd_moder'Úchannelsr7ÚdataÚendÚidÚnameZ _layer_datarrrÚ_open:sj
 
 
 
      zPsdImageFile._openc
Cs~| |¡sdSz:|j|d\}}}}||_||_||_|j|_||fWStk
rx}zd}t|ƒ|‚W5d}~XYnXdS)Nrz no such layer)    Z _seek_checkr0r'r8r:r9r!Ú
IndexErrorÚEOFError)r;ÚlayerrBr'Úbboxr8Úer=rrrr5Žs
 
zPsdImageFile.seekcCs|jS©N)r:)r;rrrr,žszPsdImageFile.tellN)    Ú__name__Ú
__module__Ú __qualname__ÚformatÚformat_descriptionZ!_close_exclusive_fp_after_loadingrCr5r,rrrrr5s Trc    s<g}‡fdd„}t|dƒƒ}|t|ƒdkr8d}t|ƒ‚tt|ƒƒD]˜}t|dƒƒ}t|dƒƒ}t|dƒƒ}    t|dƒƒ}
g} t|dƒƒ} tt| ƒƒ} t| ƒdkr¤qD| D]8}t|dƒƒ}|dkrÆd}nd    |}|  |¡|dƒq¨|      ¡| d
gkrúd } n2| d d d
gkrd} n| dd d d
gkr(d    } nd} |dƒd}t|dƒƒ}|rƈ 
¡|}t|dƒƒ}|rzˆ  |dt j ¡t|dƒƒ}|ršˆ  |t j ¡t|dƒƒ}|r¼||ƒ dd¡}ˆ  |¡| || |||
|    ff¡qDt|ƒD]N\}\}} }g}| D]$}tˆ||dƒ}|rþ| |¡qþ|| ||f||<qè|S)Ncs t ˆ|¡SrI)rr3)r7©r!rrr"§sz_layerinfo.<locals>.readréz4Layer block too short for number of layers requestedriÿÿÚArÚRr ÚBÚGr rÚérzlatin-1Úreplace)Úsi16Úabsr$Úranger(r#Úlistr-r.Úsortr,r5r1ÚSEEK_CURrÚdecodeÚ    enumerater6Úextend)r!Zct_bytesr0r"Úctr=Ú_Zy0Zx0Úy1Úx1r'Zct_typesÚtypesÚtypeÚmrBr7Zdata_endÚlengthÚirGr8ÚtrrOrr4£sn          
 
 
 
r4cCs6d}|j}t|dƒƒ}|d|d}|d|d}| ¡}    |dkrg}t|ƒD]:}
||
} |dkrn| d7} | d||    | f¡|    ||}    qRn†|dkrd} g}|||dƒ} | ¡}    t|ƒD]R}
||
} |dkrÞ| d7} | d||    | f¡t|ƒD]}|    t| | ƒ}    | d7} qøqÂ| |    ¡|    d@r2|dƒ|S)    Nrrrrrz;Ir*Zpackbits)r"r#r,rZr.r5)Úfiler'rGr>r8r"Ú compressionZxsizeZysizeÚoffsetZchannelrFriZ    bytecountÚyrrrr6ùs>  
 
 
r6z.psdzimage/vnd.adobe.photoshop)r1rUrrrÚ_binaryrrr#rr(r    rXr%rrr4r6Z register_openrMZregister_extensionZ register_mimerrrrÚ<module>s,    önV2