Python Imaging Library (PIL)で画像を扱いたいし文字も使いたいしフォントを指定したい
Pythonで画像を扱おうと思ったら,Python Imaging Library(通称:PIL)らしいので,インストールしてみる.
$ pip install PIL (略) -------------------------------------------------------------------- PIL 1.1.7 SETUP SUMMARY -------------------------------------------------------------------- version 1.1.7 platform linux2 2.6.6 (r266:84292, Feb 22 2013, 00:00:18) [GCC 4.4.7 20120313 (Red Hat 4.4.7-3)] -------------------------------------------------------------------- *** TKINTER support not available *** JPEG support not available --- ZLIB (PNG/ZIP) support available *** FREETYPE2 support not available *** LITTLECMS support not available -------------------------------------------------------------------- (略)
「ほげほげ support not available」とかいう文字が見えるが気にしない.
とりあえず,何か文字を書いてみようと.まず,フォントを指定する.*1
$ python >>> import ImageFont >>> ImageFont.truetype("〜〜.ttf", 10) Traceback (most recent call last): File "<stdin>", line 1, in <module> File "/〜〜/site-packages/PIL/ImageFont.py", line 218, in truetype return FreeTypeFont(filename, size, index, encoding) File "/〜〜/site-packages/PIL/ImageFont.py", line 134, in __init__ self.font = core.getfont(file, size, index, encoding) File "/〜〜/site-packages/PIL/ImageFont.py", line 34, in __getattr__ raise ImportError("The _imagingft C module is not installed") ImportError: The _imagingft C module is not installed
ImageFont.truetype(フォントのパス, サイズ)でフォントを指定できるわけだが,ImportErrorが.
インストールしたときの,「FREETYPE2 support not available」が原因.
というわけで,ここを参考にさせていただき,PILを一旦アンインストールした後に,freetype2の関連ライブラリのシンボリックリンクを張って,もっかいインストール.
$ pip uninstall PIL $ ln -s /usr/X11/include/freetype2 /usr/local/include/ $ ln -s /usr/X11/include/ft2build.h /usr/local/include/ $ ln -s /usr/X11/lib/libfreetype.6.dylib /usr/local/lib/ $ ln -s /usr/X11/lib/libfreetype.6.dylib /usr/local/lib/libfreetype.dylib $ pip install PIL
これでImportErrorも出ない.
無事解決!
この3つに関しては,機会があれば.
→「TKINTER support not available」「JPEG support not available」「LITTLECMS support not available」
PILのREADMEに,
1. Prerequisites. If you need any of the features described below, make sure you have the necessary libraries before building PIL. feature library ----------------------------------------------------------------- JPEG support libjpeg (6a or 6b) http://www.ijg.org http://www.ijg.org/files/jpegsrc.v6b.tar.gz ftp://ftp.uu.net/graphics/jpeg/ PNG support zlib (1.2.3 or later is recommended) http://www.gzip.org/zlib/ OpenType/TrueType freetype2 (2.3.9 or later is recommended) support http://www.freetype.org http://freetype.sourceforge.net CMS support littleCMS (1.1.5 or later is recommended) support http://www.littlecms.com/ If you have a recent Linux version, the libraries provided with the operating system usually work just fine. If some library is missing, installing a prebuilt version (jpeg-devel, zlib-devel, etc) is usually easier than building from source. For example, for Ubuntu 9.10 (karmic), you can install the following libraries: sudo apt-get install libjpeg62-dev sudo apt-get install zlib1g-dev sudo apt-get install libfreetype6-dev sudo apt-get install liblcms1-dev If you're using Mac OS X, you can use the 'fink' tool to install missing libraries (also see the Mac OS X section below). Similar tools are available for many other platforms. (略) -------------------------------------------------------------------- Additional notes for Mac OS X -------------------------------------------------------------------- On Mac OS X you will usually install additional software such as libjpeg or freetype with the "fink" tool, and then it ends up in "/sw". If you have installed the libraries elsewhere, you may have to tweak the "setup.py" file before building.
って,書いてあるんだが,まあ,いっか.
*1:こうやっていきなり文字を書こうとするあたりが恣意的すぎる