화면에 PIL 이미지를 표시하는 방법은 무엇입니까?


83

PIL 라이브러리로 이미지 편집을하고 있습니다. 요점은 탐색기에서보기 위해 매번 HDD에 이미지를 저장하고 싶지 않다는 것입니다. 창을 설정하고 이미지를 표시 할 수있는 작은 모듈이 있습니까?


어떻게 이미지를 표시 합니까? 브라우저에서?

파이썬으로 만든 창에서. 파이 게임의 창과 같은 것. 파이 게임에서 할 수 있지만 더 나은 솔루션을 원합니다.
Bartlomiej Lewandowski

1
왜 저장하고 싶지 않습니까?
Joran Beasley 2012 년

1
제가 살펴볼 작은 사진이 100 장 있다고 가정 해 보겠습니다. 다른 프로그램에서 열지 않고도 화면에 모두 인쇄 할 수 있다면 더 좋을 것입니다. 나는 wxpython에 정말 익숙하지 않습니다. 간단합니까?
Bartlomiej Lewandowski

1
창을 열려면 pygame, wxPython, TkInter, PyQt, PyGtk, PyWin32, PyObjC 등의 창 라이브러리가 필요합니다. 일단 창이 열리면 대부분은 그 창에 이미지를 표시하는 것이 간단합니다.
abarnert

답변:


116

로부터 PIL 튜토리얼 :

Image 클래스 의 인스턴스가 있으면 이 클래스에서 정의한 메서드를 사용하여 이미지를 처리하고 조작 할 수 있습니다. 예를 들어 방금로드 한 이미지를 표시해 보겠습니다.

     >>> im.show()

최신 정보:

오늘날이 Image.show()방법은 다른 OS에서 어떻게 구현되는지에 대한 설명과 함께 PILPillow 포크에 공식적으로 문서화 되어 있습니다.


실제로 내가 찾고 있던 것이지만 Windows 라이브 사진 갤러리 오류가 발생합니다. 0x800706ba
Bartlomiej Lewandowski 2012 년

3
이는 Windows 라이브 사진 갤러리가 메서드를 호출 할 때 생성 된 임시 파일 PIL 유형과 관련되어 있기 때문입니다. Windows에서는 기본적으로 .bmp로 설정되어 최신 이미지 파일 형식의 많은 기능을 지원하지 않습니다. 호출 im.format = "PNG"하기 전에 이미지 형식 속성을 명시 적으로 .png (예 :)로 설정해보십시오 im.show().
martineau 2012 년

여전히 문제가 지속됩니다. 실제로 창 라이브러리를 사용해 볼 수도 있습니다.
Bartlomiej Lewandowski

3
PIL의 기본 제공 show()방법은 "다른 프로그램을 보여주기위한 스크립트"의 가능한 가장 간단한 버전입니다. (이전 Windows 시스템에서는 MSPaint 창 전체가 표시됩니다.) 작동하지 않더라도 제안하고 시도해 볼 가치가있었습니다. 실제로 각 이미지에서 MSPaint.exe를 명시 적으로 실행하여 비슷한 작업을 수행 할 수 있습니다.
abarnert

3
@abarnert : 사실이 문제 는 Windows Live Photo Gallery 2011버그 처럼 들리며 PIL 문제를 해결할 수있는 최신 버전을 다운로드 할 수 있습니다 show().
martineau 2012 년

22

나는 이것을 테스트했고 그것은 나를 위해 잘 작동합니다.

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

1
이것이 질문에 답할 수 있지만 (예상되지 않은) SO에 대한 코드와 함께 설명을 제공하는 것이 가장 좋습니다. 실제로 코드 만 답변하는 것은 권장하지 않습니다.
d_kennetz

2
이것은 Google colab 노트북에서 작동하지 않는 것 같습니다.
kawingkelvin

2
@kawingkelvin 질문은 "화면에 PIL 이미지를 표시하는 방법"이었습니다. 당신은 아마 여기 ... 다른 특정 상황에 대한 답을 찾아야한다 : stackoverflow.com/questions/55288657/...
하비

8

일부 플랫폼에서 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")

MacOS에서 Feather는 반드시 미리보기에서 열리지는 않지만 파일 형식에 대한 기본값입니다. 저는 미리보기가 .png로 변환하는 큰 jpg 파일을 작업하고 있었는데 약 20 초가 걸렸습니다. 크롬에 JPG 기본 근무 변경 불가사의 ...
존 화이트


2

시스템에 설치된 이미지 뷰어에 따라 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()

파이썬 3의 대체 import Tkinter as tk와 함께 import tkinter as tk.


2
코드가 이미지를 디스크에 저장하는 것과 관련된 것을 어디에서 보았습니까 ??? 이 질문은 매번 디스크에 저장할 필요없이 이미지를 편집하는 방법을 묻습니다. 그러나 처음에 적어도 한 번은 디스크에서 이미지를 열어야합니다. 그런 다음 메모리에로드 된 이미지를 디스크 작업없이 원하는만큼 'img'로 처리하고 볼 수 있습니다.
Apostolos
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.