Python을 사용하여 단일 Tkinter 캔버스에 여러 URL의 여러 이미지를 표시하는 방법

무 케시 자

URL 목록이 있고 각 URL에는 하나의 이미지 만 포함되어 있으며 Python을 사용하여 단일 tkinter 캔버스에 모든 이미지를 표시하고 싶습니다. 또한 목록에는 이미지를 포함하지 않는 일부 URL이 포함되어 있습니다. tkinter는 해당 URL을 무시해야합니다.

한 번에 하나의 이미지 만 표시하는 코드를 만들었습니다.

import io
import base64
try:
    # Python2
    import Tkinter as tk
    from urllib2 import urlopen
except ImportError:
    # Python3
    import tkinter as tk
    from urllib.request import urlopen
root = tk.Tk()
root.title("display a website image")

w = 800
h = 600
x = 200
y = 300

root.geometry("%dx%d+%d+%d" % (w, h, x, y))


image_url = "http://www.okclipart.com/img2/yrdulrdklckodbfcqsuy.png"
image_byt = urlopen(image_url).read()
image_b64 = base64.encodestring(image_byt)
photo = tk.PhotoImage(data=image_b64)

cv = tk.Canvas(bg='white')
cv.pack(side='top', fill='both', expand='yes')
cv.create_image(10, 10, image=photo, anchor='nw')
root.mainloop()

이미지 URL 샘플 목록

urllist =['https://upload.wikimedia.org/wikipedia/commons/thumb/d/d0/NoCopyright.png/600px-NoCopyright.png','http://www.okclipart.com/img16/kjlhjznjvkokwqpalupl.png'
,'http://www.okclipart.com/img16/qcmwejvtwuufltxsibbn.png',
'http://www.okclipart.com/img2/yrdulrdklckodbfcqsuy.png']

또한 목록에 이미지가 포함되지 않은 URL이 있으므로 해당 URL을 무시합니다.

니첼
  1. 잘못된 URL 무시 : try ... except urllib2.HTTPError도움이 될 것입니다.
  2. 여러 이미지로드 : 반복하여 urllist각 이미지를로드합니다. 성공하면 캔버스에 그립니다.
#from urllib.request import HTTPError #py3
#from urllib2 import HTTPError #py2
#... 
def load_image_to_base64(image_url):
    """ Load an image from a web url and return its data base64 encoded"""
    image_byt = urlopen(image_url).read()
    image_b64 = base64.encodestring(image_byt)
    return image_b64

# load photos to photos list
urllist = ['http://www.okclipart.com/img16/kjlhjznjvkokwqpalupl.png', 
           'invalidurltest', 
           'http://www.okclipart.com/YouWontFindThisImage.png']
photos = []
for i, url in enumerate(urllist):
    print(i,"loading",url)
    try:
        photo = tk.PhotoImage(data=load_image_to_base64(url))
        photos.append(photo)
        print("done")
    except HTTPError as err:
        print("image not found, http error code:", err.code)
    except ValueError:
        print("invalid url", url)

# iterate through photos and put them onto the canvas
for photo in photos:
    cv.create_image(10*i, 10*i, image=photo, anchor='nw')

root.mainloop()
#...

이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.

침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

분류에서Dev

파일 브라우저에서 얻은 경로를 사용하여 tkinter의 캔버스 객체에 이미지를 표시하는 방법

분류에서Dev

Python OpenCV2를 사용하여 단일 창에 여러 비디오 프레임을 표시하는 방법

분류에서Dev

Tkinter의 단일 버튼에 여러 명령을 할당하는 방법

분류에서Dev

kendoChart : 단일 valueAxis를 사용하여 여러 일련의 서로 다른 값 스케일을 표시하는 방법이 있습니까?

분류에서Dev

Toplevel () Tkinter에서 캔버스를 사용하여 버튼을 만드는 방법

분류에서Dev

linq2sql을 사용하여 단일 gridview 또는 gridpanel에 여러 테이블의 데이터를 표시하는 방법은 무엇입니까?

분류에서Dev

RecyclerView에서 Firebase 저장소를 사용하여 여러 사용자의 이미지를 표시하는 방법

분류에서Dev

imagemagick을 사용하여 여러 이미지에 동일한 이미지를 추가하는 방법

분류에서Dev

쉘 스크립트를 사용하여 여러 단어와 파일의 해당 줄을 제거하는 방법

분류에서Dev

하나의 코드를 사용하여 여러 파일을 여는 Tkinter

분류에서Dev

Prism의 viewlocator를 사용하여 여러 ViewModel을 단일 View에 연결하는 방법은 무엇입니까?

분류에서Dev

iOS에서 URL을 사용하여 서버에서 여러 이미지를 가져 오는 방법

분류에서Dev

cx_freeze를 사용하여 Python에서 여러 파일로 단일 .exe 파일을 빌드하는 방법

분류에서Dev

쉼표 구분 기호를 사용하여 여러 행의 값을 단일 행으로 결합하는 방법

분류에서Dev

단일 AngularJS 지시문을 사용하여 여러 파일 입력에 대한 오류 메시지를 표시하는 방법

분류에서Dev

PHP / MYSQL의 단일 테이블에서 특정 값을 사용하여 여러 값을 포함하는 여러 열을 가져 오는 방법

분류에서Dev

AngularJS를 사용하여 단일 페이지에있는 여러 양식을 처리하는 방법

분류에서Dev

Python 3.8을 사용하여 Tkinter에서 캔버스에 스크롤바를 만드는 방법

분류에서Dev

JavaFX 캔버스에서 여러 이미지의 회전을 동기화하는 방법

분류에서Dev

Ruby on Rails에서 액션 메일러를 사용하여 이메일에 이미지를 표시하는 방법

분류에서Dev

배열을 사용하여 여러 이미지를 에코하는 방법

분류에서Dev

SDWebImage를 사용하여 여러 크기의 이미지에 대한 이미지를 캐시하는 방법

분류에서Dev

종이 클립을 사용하여 만든 여러 이미지를 레일 3.2에 표시하는 방법은 무엇입니까?

분류에서Dev

픽셀 행렬을 사용하여 동일한 플롯에 여러 이미지를 배치하는 방법

분류에서Dev

InkCanvas를 사용하여 캔버스에서 수행 한 작업을 UWP C #의 이미지 파일에 저장하는 방법은 무엇입니까?

분류에서Dev

SqlServer에서 여러 행의 단일 열을 여러 열이있는 단일 행으로 조인하는 방법

분류에서Dev

Python을 사용하여 여러 폴더에서 임의의 이미지 표시

분류에서Dev

postgres를 사용하여 열에 여러 값을 표시하는 방법

분류에서Dev

재스민을 사용하여 여러 인수를 일치시키는 방법?

Related 관련 기사

  1. 1

    파일 브라우저에서 얻은 경로를 사용하여 tkinter의 캔버스 객체에 이미지를 표시하는 방법

  2. 2

    Python OpenCV2를 사용하여 단일 창에 여러 비디오 프레임을 표시하는 방법

  3. 3

    Tkinter의 단일 버튼에 여러 명령을 할당하는 방법

  4. 4

    kendoChart : 단일 valueAxis를 사용하여 여러 일련의 서로 다른 값 스케일을 표시하는 방법이 있습니까?

  5. 5

    Toplevel () Tkinter에서 캔버스를 사용하여 버튼을 만드는 방법

  6. 6

    linq2sql을 사용하여 단일 gridview 또는 gridpanel에 여러 테이블의 데이터를 표시하는 방법은 무엇입니까?

  7. 7

    RecyclerView에서 Firebase 저장소를 사용하여 여러 사용자의 이미지를 표시하는 방법

  8. 8

    imagemagick을 사용하여 여러 이미지에 동일한 이미지를 추가하는 방법

  9. 9

    쉘 스크립트를 사용하여 여러 단어와 파일의 해당 줄을 제거하는 방법

  10. 10

    하나의 코드를 사용하여 여러 파일을 여는 Tkinter

  11. 11

    Prism의 viewlocator를 사용하여 여러 ViewModel을 단일 View에 연결하는 방법은 무엇입니까?

  12. 12

    iOS에서 URL을 사용하여 서버에서 여러 이미지를 가져 오는 방법

  13. 13

    cx_freeze를 사용하여 Python에서 여러 파일로 단일 .exe 파일을 빌드하는 방법

  14. 14

    쉼표 구분 기호를 사용하여 여러 행의 값을 단일 행으로 결합하는 방법

  15. 15

    단일 AngularJS 지시문을 사용하여 여러 파일 입력에 대한 오류 메시지를 표시하는 방법

  16. 16

    PHP / MYSQL의 단일 테이블에서 특정 값을 사용하여 여러 값을 포함하는 여러 열을 가져 오는 방법

  17. 17

    AngularJS를 사용하여 단일 페이지에있는 여러 양식을 처리하는 방법

  18. 18

    Python 3.8을 사용하여 Tkinter에서 캔버스에 스크롤바를 만드는 방법

  19. 19

    JavaFX 캔버스에서 여러 이미지의 회전을 동기화하는 방법

  20. 20

    Ruby on Rails에서 액션 메일러를 사용하여 이메일에 이미지를 표시하는 방법

  21. 21

    배열을 사용하여 여러 이미지를 에코하는 방법

  22. 22

    SDWebImage를 사용하여 여러 크기의 이미지에 대한 이미지를 캐시하는 방법

  23. 23

    종이 클립을 사용하여 만든 여러 이미지를 레일 3.2에 표시하는 방법은 무엇입니까?

  24. 24

    픽셀 행렬을 사용하여 동일한 플롯에 여러 이미지를 배치하는 방법

  25. 25

    InkCanvas를 사용하여 캔버스에서 수행 한 작업을 UWP C #의 이미지 파일에 저장하는 방법은 무엇입니까?

  26. 26

    SqlServer에서 여러 행의 단일 열을 여러 열이있는 단일 행으로 조인하는 방법

  27. 27

    Python을 사용하여 여러 폴더에서 임의의 이미지 표시

  28. 28

    postgres를 사용하여 열에 여러 값을 표시하는 방법

  29. 29

    재스민을 사용하여 여러 인수를 일치시키는 방법?

뜨겁다태그

보관