pythonでPILを使って画像縮小と明るさ調整

最近ちょっとpythonを使い始めたのですが、今はWindowsで、大量の画像のサムネール作成とかちょっとしたバッチ処理にだけ、使っています。その際に明るさを少し明るくしたかったのですが、その時のメモ。

画像縮小と明るさ調整

import Image, ImageEnhance
im = Image.open("C:temptemp.jpg")
im.thumbnail((400, 400), Image.ANTIALIAS)
eim = ImageEnhance.Brightness(im)
eim.enhance(1.5).save("C:temptemp_brightimage.jpg","JPEG",quality=95)

400, 400 はサイズ。横、縦、それぞれの最大サイズで、大きい方をこれにあわせて、小さい方は自動的に計算してくれる
enhance(1.5)の1.5は0.0が黒画像で、1.0がオリジナル。

ディレクトリ内の一括処理について

上記は画像一枚だけの処理ですが、

import sys, glob
for infile in glob.glob(sys.argv[0]):

とかやることで、特定のディレクトリ内のファイルを全て処理するスクリプトも簡単に作れます。実際に作ったものは、適当であまりきれいではないので、非公開ということで・・・。

参考

日本麻酔科関西地方学会・・・なぜかここにありました。
The ImageEnhance Module・・・Python Imaging Library Handbookの中の説明

phpでXMLとXSLTでHTMLをつくる(XSLTプロセッサ)

XSLTプロセッサとは

XSLTプロセッサとはXSLTを使ってXMLを他のXMLに変換するものです。タイトルではHTMLをつくるとなっていますが、実際にはHTMLでなくてもいいわけです。

XSLTとは

XSLTとは、まさに上記の目的(XMLを他のXMLに変換する)のための簡易言語で、これもXMLで書かれています。
XSLTの書き方はサンプルで覚えるXSLTプログラミングが参考になります。

phpによる変換

PHPマニュアル XSL関数より

PHP 5には、デフォルトでXSLエクステンションが含まれており、 configureに引数–with-xsl[=DIR] を追加することにより有効にすることができます。

なのでとても簡単にできます。下記が例です。($xml に xmlの内容が格納されており、/path/to/xslfile.xslにxsltファイルがあることを想定しています。)

$doc = new DOMDocument();
$xsl = new XSLTProcessor();

$doc->load('/path/to/xslfile.xsl');
$xsl->importStyleSheet($doc);

$doc->loadXML($xml);
echo $xsl->transformToXML($doc);

ここでは、$doc->loadXML($xml);としていますが、これは$xml内に既にXMLの内容が格納されていると想定しているからです。たとえばDBからとってきた場合などです。ファイルから直接読み込むのであれば、XSLTの読み込みと同じように$doc->load(‘/path/to/xmlfile.xml’);でもOKです。
これだけで、変換が完了します。