web-dev-qa-db-ja.com

画面にPIL画像を表示する方法は?

PILライブラリで画像編集を行っています。ポイントは、毎回HDDに画像を保存してエクスプローラーで表示したくないということです。ウィンドウをセットアップして画像を表示するだけの簡単なモジュールはありますか?

PILチュートリアル から:

Imageクラスのインスタンスを取得したら、このクラスで定義されたメソッドを使用して、画像を処理および操作できます。たとえば、ロードしたばかりの画像を表示しましょう:

>>> im.show()

72
martineau

私はこれをテストし、それは私のためにうまく機能します:

from PIL import Image
im = Image.open('image.jpg')
im.show()
7
Harvey

これにはmatplotlibを使用できますが、通常の画像をプロットすることもできます。 show()を呼び出すと、画像がウィンドウにポップアップ表示されます。これを見てください:

http://matplotlib.org/users/image_tutorial.html

7
Puckl

一部のプラットフォームでPILに問題がある場合は、ネイティブイメージビューアーを使用すると役立つ場合があります。

img.save("tmp.png") #Save the image to a PNG file called tmp.png.

MacOSの場合:

import os
os.system("open tmp.png") #Will open in Preview.

X.Orgとデスクトップ環境を備えたほとんどのGNU/Linuxシステムの場合:

import os
os.system("xdg-open tmp.png")

Windowsの場合:

import os
os.system("powershell -c tmp.png")
5
Feather Feet

Tkinterを使用して、システムにインストールされている画像ビューアに応じて、独自のウィンドウに画像を表示できます。

import Tkinter as tk
from PIL import Image, ImageTk  # Place this at the end (to avoid any conflicts/errors)

window = tk.Tk()
#window.geometry("500x500") # (optional)    
imagefile = {path_to_your_image_file}
img = ImageTk.PhotoImage(Image.open(imagefile))
lbl = tk.Label(window, image = img).pack()
window.mainloop()

Python 3の場合、import Tkinter as tkimport tkinter as tkに置き換えます。

2
Apostolos