CentOSに 日本語TrueTypeフォント「IPAフォント」と「IPAexフォント」をインストールする。

Pythonの画像作成モジュール、PILで日本語を使う必要が出て来て、ServersMan@VPSCentOS)に日本語フリーTrueTypeフォントIPAフォントver.3(003.03) 4書体パックとIPAexフォント2書体パック(Ver.002.01)を入れてみました。

IPAexフォント・IPAフォントのダウンロード || OSS iPedia

IPAexフォント2書体パック(Ver.002.01)に含まれているフォントは以下の通り

  • IPAex明朝/IPAex Mincho (ipaexm.ttf)
  • IPAexゴシック/IPAex Gothic (ipaexg.ttf)

IPAフォント4書体パック(Ver.003.03)に含まれているフォントは以下の通り。

  • IPA明朝/IPA Mincho (ipam.ttf)
  • IPA P明朝/IPA P Mincho (ipamp.ttf)
  • IPAゴシック/IPA Gothic(Sans serif) (ipag.ttf)
  • IPA Pゴシック/IPA P Gothic(Sans serif) (ipagp.ttf)
wget http://ossipedia.ipa.go.jp/ipafont/IPAfont00303.php
unzip IPAfont00303.zip
mkdir /usr/share/fonts/japanese
mkdir /usr/share/fonts/japanese/TrueType
mv IPAfont00303/*.ttf /usr/share/fonts/japanese/TrueType/

wget http://ossipedia.ipa.go.jp/ipafont/ipaexfont/IPAexfont00201.php
unzip IPAexfont00201.zip
mv IPAexfont00201/*.ttf /usr/share/fonts/japanese/TrueType/
fc-cache -fv

PILからダウンロードしたフォントを使ってみる

python
>>> from PIL import Image, ImageDraw, ImageFont
>>> font = ImageFont.truetype('/usr/share/fonts/japanese/TrueType/ipamp.ttf', 18, encoding='unic')
>>> image = Image.new('RGBA', (100, 100), (200, 200, 200))
>>> draw = ImageDraw.Draw(image)
>>> draw.text((10, 40), u'こんにちわ', font = font, fill='#0000FF')
>>> image.save('hello.png', 'PNG')
>>>
>>> font = ImageFont.truetype('/usr/share/fonts/japanese/TrueType/ipaexg.ttf', 18, encoding='unic')
>>> image = Image.new('RGBA', (100, 100), (200, 200, 200))
>>> draw = ImageDraw.Draw(image)
>>> draw.text((5, 40), u'こんにちわ', font = font, fill='#0000FF')
>>> image.save('hello1.png', 'PNG')

それで、作成された画像は以下。
IPA プロポーショナル明朝体とIPAexゴシック体の2種類)


Pythonで『サイト表示スピード測定 | サーバレスポンス時間測定』サイトを作成してみる。

(こちらは書きかけ)

たまに、自分のサイトの表示時間、サーバーのレスポンスが知りたい事がありますが、そんな時のために、折角ServersMan@VPSを借りたので、

サイトの表示スピードを計測するためのサイトをPythonで作ってみました。

サイト表示スピード測定 | サーバレスポンス時間測定』 

URL : http://chamu.org/speed/


ただいま、作りかけ、ソースも汚いので、完成したらソースも公開します。

CentOSにJPEGサポート付きでPIL(Python Imaging Library)をインストールする

ServersMan@VPSCentOS)にJPEGサポート付きでPIL(Python Imaging Library)をインストールしてみる。

1.freetypeのインストール(参考:wikipedia:FreeType

yum install freetype freetype*

2.libjpegのインストール(参考:wikipedia:Libjpeg

JPEGエンコード、デコードを行うためのライブラリ libjpeg をインストール

yum install libjpeg-devel

3.PIL(Python Imaging Library)をインストール

http://www.pythonware.com/products/pil/ から最新版の Python Imaging Library Source Kit をダウンロードする(本日時点では、Imaging-1.1.7.tar.gz)

wget http://effbot.org/downloads/Imaging-1.1.7.tar.gz
tar xvzf Imaging-1.1.7.tar.gz
cd Imaging-1.1.7
python setup.py build
python setup.py install
python selftest.py を実行し、JPEG support が ok であることを確認

4.テスト
(1) テスト1 …… 以下を流すと下のよな JPG が出来れば OK

import array
import Image
b = array.array('B')
for y in range(256):
    for x in range(256):
        b.fromlist([0, y, x, 255])
im = Image.frombuffer('RGBA', (256, 256), b.tostring(), 'raw', 'RGBA', 0, 1)
im.save('hoge.jpg')

こんな画像が出来ればOK


(2) テスト2 …… web上の画像を読込んで 256×256 のサムネイルに縮小してファイルに落としてみる

import Image
import urllib
from StringIO import StringIO
buffer = urllib.urlopen('http://cdn-ak.f.st-hatena.com/images/fotolife/c/chamuchamu/20110529/20110529113930.png').read()
image = Image.open(StringIO(buffer))
image.thumbnail( (256,256) )
image.save('hoge1.jpg')

上記を実行するとネット上のこんなPNG画像を読込んで

こんなサムネイルを出力すればOK

Apple iTunes StoreのデータをPythonから利用する

前回のエントリーでsimplejsonをインストールしてPythonからJSONを使いたいな〜〜〜と思ったのは、

JSON形式のデータフォーマットで提供されているApple iTunes Store内のアーティストデータを、Pythonで利用したいな〜〜〜と思ったからなのですが、

iTunes Store内のアーティストデータは、iTunes StoreのWeb APIを使って、例えば、以下のような感じで利用することが出来ます。

【例】iTunes Storeからamazarashiのデータを引っ張って来る。(やっつけソースですが。。。)

from urllib2 import *
import simplejson as json  (← Python2.6 以降を使える場合はここは「import json」 )
from StringIO import StringIO
conn = urlopen('http://ax.phobos.apple.com.edgesuite.net/WebObjects/MZStoreServices.woa/wa/wsSearch?term=amazarashi&country=JP&lang=ja_jp&media=music')
j=json.load(StringIO(conn.read()))
for i in range( int( j['resultCount'] ) ):
    print 'No.', i + 1
    for key in sorted(j['results'][i].keys()):
        data = j['results'][i][key]
        if key == 'artworkUrl100':
            print '<img src="' + data + '">'
        print key, " ==> ", data

【結果】

No. 1
artistId ==> 342419284
artistName ==> amazarashi
artistViewUrl ==> https://itunes.apple.com/jp/artist/amazarashi/id342419284?uo=4

artworkUrl100 ==> http://a2.mzstatic.com/us/r1000/007/Music/63/42/0e/mzi.qgolaffm.100x100-75.jpg
artworkUrl30 ==> http://a2.mzstatic.com/us/r1000/007/Music/63/42/0e/mzi.qgolaffm.30x30-50.jpg
artworkUrl60 ==> http://a4.mzstatic.com/us/r1000/007/Music/63/42/0e/mzi.qgolaffm.60x60-50.jpg
collectionCensoredName ==> amazarashi 0.6
collectionExplicitness ==> notExplicit
collectionId ==> 353486993
collectionName ==> amazarashi 0.6
collectionPrice ==> 1050.0
collectionViewUrl ==> https://itunes.apple.com/jp/album/guang-zai-kao/id353486993?i=353487016&uo=4
country ==> JPN
currency ==> JPY
discCount ==> 1
discNumber ==> 1
kind ==> song
previewUrl ==> http://a1848.phobos.apple.com/us/r1000/104/Music/v4/f3/e1/b0/f3e1b05d-6afd-0452-1fa2-80838846171d/mzaf_6970950198899833653.aac.m4a
primaryGenreName ==> Rock
releaseDate ==> 2010-02-10T08:00:00Z
trackCensoredName ==> 光、再考
trackCount ==> 7
trackExplicitness ==> notExplicit
trackId ==> 353487016
trackName ==> 光、再考
trackNumber ==> 1
trackPrice ==> 150.0
trackTimeMillis ==> 338668
trackViewUrl ==> https://itunes.apple.com/jp/album/guang-zai-kao/id353486993?i=353487016&uo=4
wrapperType ==> track
No. 2
artistId ==> 342419284
artistName ==> amazarashi
artistViewUrl ==> https://itunes.apple.com/jp/artist/amazarashi/id342419284?uo=4

artworkUrl100 ==> http://a2.mzstatic.com/us/r30/Music2/v4/a4/94/a0/a494a09e-dbe4-299e-9525-e9f6c67a82bd/jacket_AIXX00396B01A_550.100x100-75.jpg
artworkUrl30 ==> http://a1.mzstatic.com/us/r30/Music2/v4/a4/94/a0/a494a09e-dbe4-299e-9525-e9f6c67a82bd/jacket_AIXX00396B01A_550.30x30-50.jpg
artworkUrl60 ==> http://a3.mzstatic.com/us/r30/Music2/v4/a4/94/a0/a494a09e-dbe4-299e-9525-e9f6c67a82bd/jacket_AIXX00396B01A_550.60x60-50.jpg
collectionCensoredName ==> ジュブナイル - Single
collectionExplicitness ==> notExplicit
collectionId ==> 620316449
collectionName ==> ジュブナイル - Single
collectionPrice ==> 250.0
collectionViewUrl ==> https://itunes.apple.com/jp/album/jubunairu/id620316449?i=620316493&uo=4
country ==> JPN
currency ==> JPY
discCount ==> 1
discNumber ==> 1
kind ==> song
previewUrl ==> http://a970.phobos.apple.com/us/r30/Music/v4/90/2d/af/902daf21-50e9-98f7-8f78-d110393007d4/mzaf_8513056837175210941.aac.m4a
primaryGenreName ==> Rock
releaseDate ==> 2013-03-27T07:00:00Z
trackCensoredName ==> ジュブナイル
trackCount ==> 1
trackExplicitness ==> notExplicit
trackId ==> 620316493
trackName ==> ジュブナイル
trackNumber ==> 1
trackPrice ==> 250.0
trackTimeMillis ==> 269520
trackViewUrl ==> https://itunes.apple.com/jp/album/jubunairu/id620316449?i=620316493&uo=4
wrapperType ==> track
No. 3
artistId ==> 342419284
artistName ==> amazarashi
artistViewUrl ==> https://itunes.apple.com/jp/artist/amazarashi/id342419284?uo=4

artworkUrl100 ==> http://a2.mzstatic.com/us/r1000/007/Music/63/42/0e/mzi.qgolaffm.100x100-75.jpg
artworkUrl30 ==> http://a2.mzstatic.com/us/r1000/007/Music/63/42/0e/mzi.qgolaffm.30x30-50.jpg
artworkUrl60 ==> http://a4.mzstatic.com/us/r1000/007/Music/63/42/0e/mzi.qgolaffm.60x60-50.jpg
collectionCensoredName ==> amazarashi 0.6
collectionExplicitness ==> notExplicit
collectionId ==> 353486993
collectionName ==> amazarashi 0.6
collectionPrice ==> 1050.0
collectionViewUrl ==> https://itunes.apple.com/jp/album/shi-qi-hewaseni-shengmareta/id353486993?i=353487014&uo=4
country ==> JPN
currency ==> JPY
discCount ==> 1
discNumber ==> 1
kind ==> song
previewUrl ==> http://a436.phobos.apple.com/us/r1000/081/Music/v4/ba/c3/b2/bac3b220-7a83-6ca3-133a-19d6717915ec/mzaf_8011314659670408930.aac.m4a
primaryGenreName ==> Rock
releaseDate ==> 2010-02-10T08:00:00Z
trackCensoredName ==> 辻褄合わせに生まれた僕等
trackCount ==> 7
trackExplicitness ==> notExplicit
trackId ==> 353487014
trackName ==> 辻褄合わせに生まれた僕等
trackNumber ==> 2
trackPrice ==> 150.0
trackTimeMillis ==> 339485
trackViewUrl ==> https://itunes.apple.com/jp/album/shi-qi-hewaseni-shengmareta/id353486993?i=353487014&uo=4
wrapperType ==> track


No. 32
artistId ==> 342419284
artistName ==> amazarashi
artistViewUrl ==> https://itunes.apple.com/jp/artist/amazarashi/id342419284?uo=4

artworkUrl100 ==> http://a4.mzstatic.com/us/r30/Music/v4/63/50/4e/63504e4b-59cc-da95-ef8b-34fffd50e893/jacket_AICL02128B01A_600over.100x100-75.jpg
artworkUrl30 ==> http://a5.mzstatic.com/us/r30/Music/v4/63/50/4e/63504e4b-59cc-da95-ef8b-34fffd50e893/jacket_AICL02128B01A_600over.30x30-50.jpg
artworkUrl60 ==> http://a4.mzstatic.com/us/r30/Music/v4/63/50/4e/63504e4b-59cc-da95-ef8b-34fffd50e893/jacket_AICL02128B01A_600over.60x60-50.jpg
collectionCensoredName ==> 爆弾の作り方
collectionExplicitness ==> notExplicit
collectionId ==> 570047897
collectionName ==> 爆弾の作り方
collectionPrice ==> 1500.0
collectionViewUrl ==> https://itunes.apple.com/jp/album/bao-danno-zuori-fang/id570047897?i=570048084&uo=4
country ==> JPN
currency ==> JPY
discCount ==> 1
discNumber ==> 1
kind ==> song
previewUrl ==> http://a275.phobos.apple.com/us/r30/Music/v4/d1/b0/25/d1b0256f-d9b3-c322-3732-d1cd80a1d04a/mzaf_9158864821615303970.aac.m4a
primaryGenreName ==> Pop
releaseDate ==> 2010-06-09T07:00:00Z
trackCensoredName ==> 爆弾の作り方
trackCount ==> 6
trackExplicitness ==> notExplicit
trackId ==> 570048084
trackName ==> 爆弾の作り方
trackNumber ==> 3
trackPrice ==> 250.0
trackTimeMillis ==> 302387
trackViewUrl ==> https://itunes.apple.com/jp/album/bao-danno-zuori-fang/id570047897?i=570048084&uo=4
wrapperType ==> track

(以下略)

CentOSにsimplejsonをインストールする

PythonJSONを使いたいな〜〜〜と思ったのですが、PythonでのJSONの標準サポートは2.6からで、現在インストールしているPythonがバージョン2.4.3のため

simplejsonのサイトからsimplejsonをダウンロードしてインストールする。

wget http://pypi.python.org/packages/source/s/simplejson/simplejson-2.1.2.tar.gz#md5=a856f9ae9ab3749991a93ddeafadc554
tar -xvzf simplejson-2.1.2.tar.gz
cd simplejson-2.1.2
python setup.py install

CentOSのバージョンとアキテクチャを確認する

CentOSのバージョンを確認する

$ cat /etc/redhat-release
CentOS release 6.4 (Final)

CentOSのアキテクチャを確認する

$ arch
x86_64 ← 64bit判のCentOSをインストールしていたのでx86_64と表示される