このブログの更新は Twitterアカウント @m_hiyama で通知されます。
Follow @m_hiyama

メールでのご連絡は hiyama{at}chimaira{dot}org まで。

はじめてのメールはスパムと判定されることがあります。最初は、信頼されているドメインから差し障りのない文面を送っていただけると、スパムと判定されにくいと思います。

参照用 記事

Python Imaging Library と IrfanView

1年たって、手書きから自動描画へ」で触れたような画像は、Graphviz + PyGraphviz で描いています。出力された画像データをお手軽に表示するために、PIL (Python Imaging Library) を使ってみました。

単に画像表示にPILを使うというのはまったくの牛刀なんですが、他になんか使う機会もあるかな、ということでインストール。http://www.pythonware.com/products/pil/ から、ソースキットまたはWindowsインストーラーをダウンロードできます。何の問題もなくインストールできます。

実際に使ったのは、Imageオブジェクトのshow()というメソッドです。中身を見てみると、Widoowsの場合、画像データをBMP形式の一時ファイルに書き出して、BMPに関連付けられた外部プログラムを起動しているだけです。

仮に一時ファイルの名前が tmptmp.bmp だとすると(仮に、ねっ)、start /wait tmptmp.bmp && del /f tmptmp.bmp というコマンドラインが、os.system関数により実行されます。同じことを自前でやってもたいした手間ではないので*1、show()を使うためだけにPILをインストールするのは「牛刀」だと思うわけです。

さて、このshow()を実行してみると、… うまく動かない。 なんてこったい。

Windows7のデフォルトでは、BMPを始めとする画像ファイルの拡張子に Windows Live Photo Gallery が関連付けられていますが、コイツがよろしくないもよう*2。この機会に、定評があるらしき IrfanView に置き換えることにしました。

IrfanViewのインストールはZIPファイルを展開しただけなので、拡張子とプログラムの関連付けは手作業で行いました。「コントロールパネル>プログラム>既定のプログラム>関連付けを設定する」で出来ます(操作性が悪くてめんどくさいが)。これでうまくいって、快適に画像のビューイングが行えるようになりました。

*1:すべてのプラットフォームできちんと動かそうとすると、それなりの知識や慎重さが必要で、やっぱり面倒ですけどね。

*2:ハッキリとはわかりませんが、コマンドライン引数がうまく渡ってない感じです。