Diary?::2006-01-07

01:39

どうして子供は王様にハンドアックスを投げたのか。

参考: 物語に登場するモヒカン族 (※誤解の無いように書いておくけど、ハンドアックスが何を表しているかはわかっているのでツッコミ不要)

07:25

lambda を入れ子にするような奴とは友達になれそうにないな、俺は。

それはともかく、 HandMail ってどうなのだろう? 俺は絶対に使わないというか、別に普通に GIMP なりなんなりで作った方が安全だよなあというか、別にこの程度のプログラムなら瞬殺物だよなあ。 Python + PIL で

import ImageFont, ImageDraw, Image

def create(s, out='adress.png', size=10, fcolor=(0,0,0), bgcolor=(255, 255, 255)):
	font = ImageFont.truetype('フォントへのパス', size)
	image = Image.new('RGB', font.getsize(s), bgcolor)
	draw = ImageDraw.Draw(image)
	draw.text((0, 0), s, font=font, fill=fcolor)
	image.save(out)

こんな関数を作って、あとは GUI なりコマンドラインなりのインターフェースをくっつければ終わりなような。

08:20 写真日記「雪」

やけに寒いと思ったら雪が降ってたのか。

19:44

PIL で画像を合成する際には、合成する画像のフォーマットを同じにしておくこと。例えば以下のコードは上手く動作しない。

image = Image.open('sample.png')
image2 = Image.new('RGB', ... )
# image2 にデータをぶちこむ処理
image.paste(image2, (0, 0)) # フォーマットが異なるので上手く動作しない

正しく動作させるには、あらかじめ image.convert('RGB') などとしておくこと。そして最悪な事に、このコードはエラーで落ちるのでは無く妙なデータが吐き出される。正直な話、こういう場合にはエラーを吐いて欲しい。 Offensive Programming ってのはこういう場合にこそ使うべきなのだろうね。

Written by Kuwata Chikara
Creative Commons