[Image-SIG] TrueType and Type 1 fonts with PIL

Joerg Baumann Joerg.Baumann@stud.informatik.uni-erlangen.de
Sun, 26 Mar 2000 03:03:32 +0200 (MET DST)


  This message is in MIME format.  The first part should be readable text,
  while the remaining parts are likely unreadable without MIME-aware tools.
  Send mail to mime@docserver.cac.washington.edu for more info.

---559023410-851401618-954032612=:21719
Content-Type: TEXT/PLAIN; charset=ISO-8859-1
Content-Transfer-Encoding: QUOTED-PRINTABLE

After the short discussion about fonts and PIL, I wrote a small patch
(attached to this mail) for Imaging-1.0.

This patch uses the FreeType2 Beta library from www.freetype.org to
enable ImageFont to use TrueType and Type 1 (and other) font-files.

The FreeType2 Beta library does not run on all systems yet, but
the development of FreeType1 is stopped, and I didn=B4t want to use a soon
obsolete library. (It should run fine on most unix-boxes with gcc)

In _imaging.c  WITH_IMAGEFREETYPEFONT must be defined,
and in Setup.in the location of the freetype-library must be adjusted.

Old pil-font are loaded as it used to be:
f=3DImageFont.load("courR14.pil")
The new syntax to load fonts with freetype is:
f=3DImageFont.load("verdana.ttf",0,30)

the new options are face_index and size.
Some of the now supported fontfiles support more than one face, you
can select one with face_index (should be 0 in most cases)
Size is the height of the font in pixels.

This runs fine for me (linux 2.2.10, glibc 2.1)

please try it, and if you find a bug, contact me.

Regards,
   joerg

  Joerg Baumann       joerg.baumann@stud.informatik.uni-erlangen.de
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ =20
  Beware of bugs in the above code; I have only proved it correct,=20
  not tried it.
                  Don Knuth=20
=20

---559023410-851401618-954032612=:21719
Content-Type: APPLICATION/octet-stream; name="PIL.diff.gz"
Content-Transfer-Encoding: BASE64
Content-ID: <Pine.GSO.4.21.0003260303320.21719@faui02t.informatik.uni-erlangen.de>
Content-Description: 
Content-Disposition: attachment; filename="PIL.diff.gz"

H4sICNdd3TgAA1BJTC5kaWZmAM0aa3PaSPIz+RVtUpWSQGCBbWxMcBWxcdZ3
juOLye3d7W6phDSAYiHpJLE2m/J/v+4ZjTTi4Uc2e7sqjKWZ6fdjelq43mQC
jRgap9CGi7k99YJpo9U0d68vLnfpmZ2HQdqMlupkI2B3awte1Wq1RzFURgsG
g8UUYA9M83ive3zQgVa3233VaDSeRF+5WQTwwY6h3SHogyP8QNs0TaKrXpyP
lmm09oA/EnJ63Ae8a7wCeA3dbsNsN8wOTPxKzO7iMGUwD5MUJkgL5naAZOcM
b5N0gerxAjjN4fYarUOCS+1bBlE6g4nnswTXpCHYjhMuEAwB/NB2rcjGeW0S
h3P45DkzO3bhb2HAEv1VHbGZJmFrH8CX6dheIFWwXReSRRSFMbESwyhesNEy
YmAHLvCbFtx5iPM8Znyi3fC9cWzHS2KPszgK3fB4o0r2jozDllAJgOPbSQK5
fo9x6NUO0OWyCViCe88nfWgJ8ycGFzOw50znawEqkwj6EEYs0OSUAdV4XNWz
+dcQM9sFtCPX6gwfWIxEKt4EJlGTJn0vYJoOO32oZst+DqrHtIY4iW0vYXCz
DFL7fhjHYYz4r8IU7BwnEa7SchdZSdIY/aeZRL6XaiUCCNdDtnAdidL0gkmI
63/6BdV1fvGvD8NjSGbhwndhjJoG13NSLwxIqQSBK0vIaPBuhoQh4WZJOPtn
g9FA5T0n1LQjVJGrJQRIsytqmTNk20m4EHZqF9S09kGn1ja3gI29dG5HXJtk
QwS7QseiZ/Ibds99UKs2o2BaRfGbU2/C/0fjeVXPuUzjJb/PkXCHaHKjhkmT
3FfoExHmVtZ/Mn+BOtHQJR5277AoFagidCw5jpbmmMXMGCW4zRxAEPQSzvaK
xS8+Sms7dhCEZGbU89RfRjPgOpJmz8Vvkr9qhYW5iqQ0ThgzPqKJtd7c4GgK
P3WZz6Y25gAn9lLPsX1y69gmL0gAwxpjm8UBDqcYcjyf7HWNo5bMJ98eS8bE
dpiF0rF7I/F++yNiq785tmhdTnunbwoLbYq4YhlU68VDvQpkmixbMZf8Decz
bisKHRJsp5/beRMRCYZI0SU4XrQCs8dZeHNdPjPES9H37DDnUJtCnSYeD/fK
9lgn4O3xzqV6LOY3gBdxz7W7Evs09tz4r+TBr2L6hgRQUaOfcMkMUCmHP03J
FLCaIEqZoPLCNFAIoOSB3A2emQsET8xP2HGl0H2gbje5hqOm44cJOkhvxc37
ws3Ffdt8Bh9yI9e2poRvzFKbKoDDjtE1ZQXwmqev33uJXEd5jqu+VCTQVb3E
YVRhvl03q9nMRCqDcia3GR9tlvNljjCDilm6iAOYlOnyQusZxA00hR07M0wi
YPshfqczBtfLdBYGwJ095w6jyPViiqJkKQKBsOZBo/DCBZfB8iX0Ag0BlXqJ
WM9iRPo0R5WHCm0oRx2jZZpFhfoH2kbxsL7JfYx77Xc32SZPfq4JX8zjn2LZ
TRI+aulNQdltG92ODMqiKsP7CrGJZcAaA3IbxH+RxnM15uLY1sUeousiLb/E
PYsirsR4JffPltlGB+1IB/0T+Nyo7Ef5drcdbW+QYoQ79tqZU06sHWXlxMoR
dr99jEG79QibQ6lH1xYdfM3D7UdXrC339/IszbMBDY8cf3d0mx8PqRbJzn6o
OodvA1lA0jW63U1vM36aDjTOfrwY/WCN/n5xNRp+gsbF7iKJdwnO3/UCx1+4
DBqXyiCihoafOv5R06SbW/wvdqLvlJsaoorez13qryQp/IwEXtMfZyg/bW/i
o/JcEhPEQlszIv+eitzq5ZaXK2XVMYupNU8vpl7WrlHgyt6OMbLf3e7t+x0D
p/NGDT4e5Nsg1EqdmoHr4jnDje07S5TBhsj/tuNgaSQqIdGxKWAPG20FNr31
Ao+OSz5WTq/qtGi9CSOWfnMbBmqC+mkYLWNvOktBc3S4YQ7mObi0xwkM3pEa
DxvdbnNzmWYah0rv6rBlHB7kUYL7JZ5NKtzJh+fnw9PRDezWIImY42HtxyYT
5qQJ1HZXF//j8+BqdPGfIa3+78IOUu+3TGOZpAhSlyDAQS4+DN4Pzz8Nh6N/
Xw/PP16NCHaBpfma3FxNZIyEE16lfTZ89/k9AfP8j3v+eDElZ8n6awizSQ/t
vf09A786hS7w6cBoH+wfSn3gB9F+j0DK5PcmAZUkhfxnnwY/0sRiZVzVC83j
wc+b4I1A8vhamSXeypzQnJ0I0CRFozhwPrIupWZTK1NyDyWlqkZqP89GnPMM
0qOCKAexYjbpmz2BmwgRX7gfL5wUvlIA4HW9/Dj+gk5j/TAcnGVjSP8ct1ve
I+hBRlcUWzTMCfJzD28+kJcbYxuPOWhxIvYg08O5csQRVHqqnOg1d9QUvV4W
CzaBWvRVgsy5ruGQpZ6kLMxGWj7Lz16WUSwHO57y/qsUfyunUCPYXrZsESTe
NMDEQG3cGteFRbVJT9FEUaGURmkpVSyZAHShRqeYDogXRZkT0Haul4N4al3b
ccJGi8hnGq3BM3DieVUDF1boIP0mJ2/gfVEXZRO8PNIzrEo9e/X58rLMBCYl
OlGGmcCSExIcK7rcM66GP2pb9YRUt5lM7ymiCaR9zgUxV9nKFU/SJeeWOMqe
Xa/3+6YOiqC0Bn33AhFY+dEatZKDgc7XV8j64jC/IVYqIiywnrSwhLvhVSy6
1PDesf5p+wuW9SWkNfA4csr7StQtIN4xEXvJepxW9Rz5iuiVh7JfrASZEOqK
3fGgVJRggOIIJT8gZTdOOJ7cE74qinqedFtk+03kgkyedbv0+y0dMg0j42d4
ciusUSyV6thogocNHkKXoqmEKcG1pi6Uzbr27plv3eB0ohUaMQoo5fY76kky
xvtAmZZyPZAFC17+LBUqgd44ERm8X3DVOCHOGydZs7K5tKKIzXslIJnv+5oK
J1A11CE7cXBvZHFdHXRZNqrDblsizngtsrcOMgU/lJL/r6HnruV9l9k+1tvb
E5XYDNTc/5hRpCs1GmXlvlVSzlc19zxppk1GUl36evmBzbFWuuSs6OtiewEp
nDYV2s2xlrrz3HSW03tCcAOcMEjS1Z0s5X3cQie0Zd3z2PCUrEz1ncaHcV8w
e1AjsB4HrtczT/X6qIL3GHaniBhzMGYiDdSw00qkdY4DcmXnWyAVP9QRek+t
XjVuPYOmPg7OrKuP1ruL0YfBNeYB2dvPylhxNEhALj0bng8+X45qu1nmJzJC
kHofVP4aJ7y3XHj9LIy9gfurHWASPTmBDuhQh9aq1TKnvZc7fNlk28sUzPNz
O7l92mpPli7g5aHJjWeMheno2mBsxaqPVxxV3Ee4dzxdSnjzrDWI7OA+9Q7j
8FarXiKGdTcVUnHERikBlcJux5s/TXbMnXGlkPN8X6O+/puxvrK0nLh6Jdd+
mVv/pbw6r2Vw8h1fB7RecCDniIdNzo7Sz+2U6jJMT3zMEkNWuEh5ukECIBCJ
T6WCyJvcpkK8Ppq/cZIHgJiPw7sE1PlleT7yUqcET7RWl9DuPQ9dyjnIXfFs
TWN7mfCDCdfTyuw8DEJRDwhEYzxkslihNSb/lBbiy1B1H4W81ii2g8THslhT
y6hcYZlaDLh/+7ZjrPiUSPQqNnIcYRQN1MLtUdRvkGsoqsUHoPdShZ3p2uoh
Qm657JlVLC2tCgy8a3vLkvLrXaV2pWsapiEWnFh3ugWXJX+7p+z6Tcm1Uhb3
+XV4FQMxfx1NsWg7KYtzzld5lglcKYeoqKQXz9BqHwH5GPxKdPjrtfZBp6gx
1RKxFP5QY/3cw+q539fyCDFqUb/kgvwHG1ovest6EeYcwStFay3SARfXojp+
tm0718si62LW03sgpRGSHpeT4xnzGTq2XLghs75g+yJxfs/29X/am3JNWe8W
nu9yz9GqdJx+8eZUVk7WR6GyLZ2F7hn92KOkozkfT376BdOOFPprNdv4kTz6
8un5IuC/Q9A3VgcGtB4MFZKfKJ6CFCcbBZI0YnC9PIiDU5BinvGFPz9saazw
WF7Dbadp/IxKk1tUvLgtDF5Y4hzPqUJr2kaVGWuHAENgW7PCjMXsef0jxQil
lpd1cXUx0mRXgi7TwHxS2a2FY34yzKO+qqCuGrQijSxiq2ic4PJwsl0/uiGA
SmglORz3UjYvzaG1MpUUyUfDwxN3vTDWNx6BMiLZ0yY6EabStECY2XWCHrXu
TTSTYcyeSm7zSvY+6e479mJlbzfb5tKZl9CvRJKQ9EFVbzgBG5WTJE2AG/HD
nphFPrU8+GLq0G/uK+8fdI32fqet9JU7HdPAr6O8zy7auaDsDGtt17x5/XTH
V8SvqtnHgzhgdzKAi8ay3PhheB+x2KMfqNo+f7ldsALrrFwPRj9s0cPREeqh
25YvG5WNglyXR00TgyAV0fNGhFnWjM11tCM5w7imxtuH0F1gpq7KN0Io6SST
MtEJ7iFTeXffaB8WP3r4VuqP635nFW8pJ2zFv1N4wMtE+x8jLjSjUC0AAA==
---559023410-851401618-954032612=:21719--