Your IP : 216.73.216.213


Current Path : /opt/alt/python35/lib64/python3.5/site-packages/PIL/__pycache__/
Upload File :
Current File : //opt/alt/python35/lib64/python3.5/site-packages/PIL/__pycache__/PcfFontFile.cpython-35.pyc



�ʴW2�@s�ddlmZddlmZddlmZdZdZdZdZdZdZ	dZ
dZdZdZ
d
d�dd�dd�dd�gZejZejZejZejZejZdd�ZGdd�dej�ZdS) �)�Image)�FontFile)�_binaryifcp��������cCs|dd?S)Nrr�)�bitsr
r
�B/opt/alt/python35/lib64/python3.5/site-packages/PIL/PcfFontFile.py�<lambda>'srcCs|dd?d@S)N�rr���r
)rr
r
rr(scCs|dd?d@S)N�r���r
)rr
r
rr)scCs|dd?d@S)N�?rri����r
)rr
r
rr*scCs|||jd|��S)Ns)�index)�s�or
r
r�sz4src@s^eZdZdZdd�Zdd�Zdd�Zdd	�Zd
d�Zdd
�Z	dS)�PcfFontFile�namec	Cs�t|jd��}|tkr-td��tjj|�t|jd��}i|_xlt|�D]^}t|jd��}t|jd��t|jd��t|jd��f|j|<qhW||_|j	�|_
|j�}|j|�}|j
�}x�td�D]�}	||	}
|
dk	r||
\}}}
}}}}}|df|
||||
|fdd||f||
f}||j|	<qWdS)Nrznot a PCF file�r)�l32�read�	PCF_MAGIC�SyntaxErrorr�__init__�toc�range�fp�_load_properties�info�
_load_metrics�
_load_bitmaps�_load_encoding�glyph)�selfr$�magic�count�i�type�metrics�bitmaps�encoding�chZix�x�y�l�r�w�a�d�fr*r
r
rr!?s(	G	
"<zPcfFontFile.__init__cCsx|j|\}}}|j}|j|�t|jd��}|d@r[tt}}n
tt}}||||fS)Nr)r"r$�seekrr�b16�b32�l16)r+�tag�format�size�offsetr$�i16�i32r
r
r�
_getformat_s	


zPcfFontFile._getformatc
Cs"i}|jt�\}}}}||jd��}g}xWt|�D]I}|j||jd��t|jd��||jd��f�qIW|d@r�|jd|d@d�|j||jd���}	xE|D]=\}
}}t|	|
�}
|rt|	|�}|||
<q�W|S)Nrrr)rF�PCF_PROPERTIESrr#�append�i8r<r)
r+Z
propertiesr$rArDrEZnprops�pr.�data�kr�vr
r
rr%osG
zPcfFontFile._load_propertiesc
Cs�g}|jt�\}}}}|j}|d@dkrx�t||jd���D]�}t|jd��d}t|jd��d}	t|jd��d}
t|jd��d}t|jd��d}|	|}
||}||
|||	|
||df�qVWn�x�t||jd���D]�}||jd��}||jd��}	||jd��}
||jd��}||jd��}||jd��}|	|}
||}||
|||	|
|||f�q2W|S)Ni�rrr�rr)rF�PCF_METRICSrHr#rrI)r+r0r$rArDrErHr.�left�right�widthZascentZdescentZxsizeZysizeZ
attributesr
r
rr'�s8	"

"

zPcfFontFile._load_metricsc
Cs�g}|jt�\}}}}||jd��}|t|�krTtd��g}x0t|�D]"}	|j||jd���qgWg}
x0td�D]"}	|
j||jd���q�W|d@}|d@}|
|}
|j|
�|j|
�}t|}d}|rd}x�t|�D]|}	||	\}}}}}}}}||	||	d}}|jtj	d||f|||�d|||���q)W|S)	NrzWrong number of bitmapsrrz1;R�1r�raw)
rF�PCF_BITMAPSr�len�IOErrorr#rH�
BYTES_PER_ROWr�	frombytes)r+r0r1r$rArDrEZnbitmapsZoffsetsr.ZbitmapSizesZbitorderZpadindexZ
bitmapsizerK�pad�moder4r5r6r7r8r9r:r;�b�er
r
rr(�s4  




"9zPcfFontFile._load_bitmapscCsdgd}|jt�\}}}}||jd��||jd��}}||jd��||jd��}}	||jd��}
||d|	|d}x]t|�D]O}||jd��}
|
dkr�y|
|||<Wq�tk
rPYq�Xq�W|S)Nrrri��)rF�PCF_BDF_ENCODINGSrr#�
IndexError)r+r2r$rArDrEZfirstColZlastColZfirstRowZlastRow�defaultZ	nencodingr.ZencodingOffsetr
r
rr)�s
++

zPcfFontFile._load_encodingN)
�__name__�
__module__�__qualname__rr!rFr%r'r(r)r
r
r
rr;s .-rNrrrr�� �@rNr)ZPILrrrrrGZPCF_ACCELERATORSrOrUZPCF_INK_METRICSr^ZPCF_SWIDTHSZPCF_GLYPH_NAMESZPCF_BDF_ACCELERATORSrXrIZi16ler?Zi32lerZi16ber=Zi32ber>rrr
r
r
r�<module>s.