pythonのPILの勉強をしてみました。チュートリアルを見ながらあれこれやってみたのでメモしておきます。
import Image
im = Image.new( "RGB", ( 480, 360 ), ( 0, 0, 0 ) )
im.show()
これで真っ黒のイメージファイルを作成して、描画します。show()メソッドがあるのでかなり便利。Image.newでイメージを新規作成しますが、もちろんファイルオープンも出来ます。
im = Image.open( "pic.jpg" )
ファイル名を指定して、openするだけ。openしたものもshowで見れます。

次の写真は、rotateメソッドを使ってみました。イメージの角度をちょっと傾けたものをよくブログで見かけますが、そんな事も出来るみたいです。
im.rotate( 15 ).show()
。。が、傾けた分イメージが切れてしまうところと、背景が黒くなってしまいますね。これが嫌なので、ちょっと細工を施してみました。

まず画像が切れてしまうため、傾けてもすべて収まるように、もとの画像より少し大きめの画像を下敷きにしく必要があります。少し大きめの画像とはどんなものかというと、画像をくるっと回転させられる大きさということなので、元の画像の対角線分を縦横で確保する事になります。
三平方の定理と三角関数より、
c^2 = a^2 + b^2
半径を出します。
r = pow( ( im.size[ 0 ] / 2 ), 2 ) + pow( ( im.size[ 1 ] / 2 ), 2 )
r = math.sqrt( r )
で、下敷きの画像は透過したいので以下の処理を施します。
base = Image.new( "RGB", ( r*2, r*2 ), ( 0, 0, 0 ) )
base.putalpha( Image.new( "L", ( r*2, r*2 ), 0 ) )
base.paste( im, ( ( base.size[ 0 ] - im.size[ 0 ] ) / 2, ( base.size[ 1 ] - im.size[ 1 ] ) / 2 ) )
base = base.rotate( 15 )
base.save( "rotate.png" )
これで、rotate.pngを見てみると、元の画像がすべて収まりつつ背景も透過されたものが作られます。

あとは適宜好きなようにトリムすれば、うまく使う事が出来そうですね。ちなみにジェネレートしたファイルがpngなのでIEだとちゃんと透過されて表示されなかったりします。firefoxやchromeなどではちゃんと見れます。IEが悪いんだということでほっときます。あはは。