PythonとPillowとImageMagickで。
成果物
実行結果
このブログで最初に投稿した画像を表示した。
開発環境
- Linux Mint 17.3 MATE 32bit
- SQLite 3.8.2
- Python 3.4.3
- ImageMagick 8:6.7.7.10-6ubuntu3.4
- Pillow
はてなフォトライフAtomAPI - Hatena Developer Center
なお、使用させていただいたライブラリは以下のライセンスである。感謝。
前回まで
http://ytyaru.hatenablog.com/entry/2017/07/08/000000
http://ytyaru.hatenablog.com/entry/2017/07/09/000000
http://ytyaru.hatenablog.com/entry/2017/07/10/000000
http://ytyaru.hatenablog.com/entry/2017/07/11/000000
今回
SQLite3のBLOBに保存した画像データをディスプレイに表示する。
gif,png,jpgなどをそのままDBに保存したものを表示する。
使うもの
ソフト | 説明 |
---|---|
Pillow | Pythonの画像処理ライブラリ。PIL(Python Image Library)の後継。 |
ImageMagick | 画像処理ツール。 |
install
Pillow
$ sudo pip3 install Pillow Requirement already satisfied (use --upgrade to upgrade): Pillow in /usr/lib/python3/dist-packages Cleaning up...
ImageMagick
Pythonパッケージではない。Synapticパッケージマネージャでインストールした。
画像の表示ができるらしいPillowを使うことにする。
画像の読込と表示
from PIL import Image from io import BytesIO import dataset image = self.db_photo['Contents'].find_one(ItemId='20160608222919')['Content'] i = Image.open(BytesIO(image)) i.show()
C#でいうMemoryStream的なやつが、StringIO、BytesIOと思われる。バイナリ形式ならBytesIOを使う。Python2と3ではパッケージ名などが違う。上記はPython3。
i.show()
はImageMagickの表示ツールを呼び出すらしいので要インストール。
調査
読み込み
Requests の使い方 (Python Library) - Qiita
>>> from PIL import Image >>> from StringIO import StringIO >>> r = requests.get('http://www.fnal.gov/faw/designstandards/filesfordownload/FermiLogo_blue.gif') >>> i = Image.open(StringIO(r.content))
python - Convert PILLOW image into StringIO - Stack Overflow
バイナリデータからの読み込み。
Python3 + Bottle + Pillow でレスポンスとして画像を返す - BLOG EX MACHINA
画像の表示
from PIL import Image im = Image.open("./achan.jpg") im.show()
PILはPillowの前身なので同じことがPillowでもできるはず。
python - How can I display an image using Pillow? - Stack Overflow
python - How to show PIL images on the screen? - Stack Overflow
PIL.Image.open().show()
はImageMagickのdisplay
コマンドを呼び出すらしい。というわけで、ImageMagickもインストールする。
参考
参考にした。感謝。
Python、requestsを使ったダウンロード - Pythonメモ torinaブログ
requestsを使った画像のダウンロード - Qiita
Pythonで画像処理 | Nana-Korobi
Pillow(Python Imaging Library)のインストールと簡単なサンプルコード | mwSoft
https://pillow.readthedocs.io/en/4.0.x/
所感
ついにできた。DBから画像が見れたよやったね!