background preloader

Pil

Facebook Twitter

Python Imaging Library(PIL) で余白をトリミングしたい - trial and error. 昨日から、Python Imaging Library (PIL) をいじってます。

Python Imaging Library(PIL) で余白をトリミングしたい - trial and error

ドキュメントを見ながら、地道に試行錯誤してます。 Python Imaging Library (PIL) 名前からも想像できる通り、Python から画像処理とかが行えるライブラリです。 ちょっと、必要になったので、使ってみてます。 今回やろうとしていることは、文字を書いた画像を出力したいわけですが、文字の長さは不定なわけで... でかすぎてもみっともないし、小さいとはみ出す。 というわけで、画像を GIMP でいう "最小枠で切り抜き" する必要があります。 無駄な領域、余白をトリミングといったほうがいいかな? まあ、どんなことがやりたいかは、見てもらえばわかります。 Before after まあ、こういうこと。 ただ、ある程度余白を残しておきたい感はあるけど、それは後からやるとして... ドキュメントを読んでいたら、getbbox() というメソッドがあって、これを使ってみようかなと。 だけど、ん? Getbbox im.getbbox() => 4-tuple or None Calculates the bounding box of the non-zero regions in the image.

Non-zero regions ということは? とりあえず、やってみる。 ソース import Image, ImageDraw, ImageFont img = Image.new("RGB", (200, 200)) draw = ImageDraw.Draw(img) font = ImageFont.truetype("VL-Gothic-Regular.ttf", 16) draw.text((0,0), "Hello world! こんなことしたら、あっけなく成功した。 ただし、黒背景に限る! やってみればわかるけど... 出力結果 こんな感じで、白背景とか、黒以外の背景には全く効果がない。 Non-zero regions っていうのは、早い話が 0x000000 な領域 == black ってことなんだと思う。 Getbbox() の結果を見れば、わかる話で。 白背景の場合 (0, 0, 200, 200) 黒背景の場合 (0, 5, 174, 21) な結果が返ってきてます。 PythonのPILを使ってみて、躓いたことなど。 - 〜けものみちを目指して〜Only the Paranoid Survive. 今回は、頭の弱い自分ではすぐに分からなくなってしまうので、PILライブラリの使い方について、私が勉強して行った足跡をメモしておきます。

PythonのPILを使ってみて、躓いたことなど。 - 〜けものみちを目指して〜Only the Paranoid Survive

PILとは何か? 読み方は恐らくピルですが、あのピルではありません。 略称です。 PIL = Python Image LibraryPythonで画像の生成や、イラストの加工を行うためのオープンソースライブラリです。 これを使うことで、自分でPython作ったデータ等を、いちいちcsv形式等でexcelに渡して、グラフ表示なんて面倒くさい事をしないで済みそうです。 まずはインストール インストールについては以下のサイトを参照して私もできたので、みなさんもできるはずです! ではインストールできているか、確認してみましょう。 このように入力しても何事もエラーが起きなければ大丈夫です。 では早速お絵描きしていきましょう。 PILの使い方について、私が経験しながら感じた事柄を混ぜながら書いていきます。 Python Imaging Library Handbook. Python Imaging Library (PIL) The Python Imaging Library (PIL) adds image processing capabilities to your Python interpreter.

Python Imaging Library (PIL)

This library supports many file formats, and provides powerful image processing and graphics capabilities. Status.