[英]Tkinter - post all pairs of images per two of a folder in the same display, side by side
Tkinter-在同一顯示中並排發布目錄中每兩個目錄的所有圖像對
為了使用Tkinter,我想在另一個循環中將所有圖像發布到文件夾(png)中,包括所有可能的對! 例如,如果在一個特定的文件夾下存在10張圖像,我想顯示(10!)100對圖像(我不介意一些重復的圖像)。
在這段時間之前,我的代碼是:
<pre>
import os, sys
import random
import numpy as np
from multiprocessing import Pool
from Tkinter import *
from PIL import Image, ImageTk
import tkFont
path1='/'
dirlist=os.listdir(path1)
ln=len(dirlist)
#counters
ln
size_im=5
ii=0
for ii in range(0,2):
root1=Tk()
j=ii+1
dl1=dirlist[0+j]
image1 = Image.open(os.path.join(path1,dl1))
image1 = image1.resize((image1.size[0]/size_im,image1.size[1]/size_im), Image.ANTIALIAS)
display1 = ImageTk.PhotoImage(image1)
label1 = Label(root1, image=display1)
label1.pack()
for kk in range(0,2):
root2=Tk()
m=kk+1
dl2=dirlist[0+m]
image2 = Image.open(os.path.join(path1,dl2))
image2 = image2.resize((image2.size[0]/size_im,image2.size[1]/size_im), Image.ANTIALIAS)
display2 = ImageTk.PhotoImage(image2)
label2 = Label(root2, image=display2)
label2.pack()
root1.mainloop()
root2.mainloop()
#ultimately, i would like something the below one in photo pairs
for ii in range(0,5):
j=ii+1
dl1=0+j
for kk in range(0,5):
m=kk+1
dl2=0+m
print [dl1, dl2]
<code>
在這里,這是python代碼,可以將多個圖像顯示在同一個canva中,並排顯示多個圖像,一個接一個顯示多個圖像,所有圖像都顯示在一個目錄/文件夾中。 要顯示所有可能的圖像對,例如:如果同一文件夾中僅存在3張圖像,則將顯示的圖像對將是以下圖像對:1-1,1-2,1-3,2-1,2 -2,2-3,3-1,3-2,3-3。 您可以調整計數器。
我以這種方式進行了調整。 而已。 主要思想是在一個根/主循環下對兩個圖像使用相同的標簽(label1),使兩個循環一個接一個地進入。
<pre>
# importing
import os
import sys
import random
import numpy as np
from multiprocessing import Pool
from Tkinter import *
from PIL import Image, ImageTk
import tkFont
# the path that must contain supported (only) image formats
path1 = '/'
dirlist = os.listdir(path1)
# to find the number of images under the directory
ln = len(dirlist)
# counters
# the number of images under the directory
ln
sm = 5
ii = 0
# making two loops, with main function inside of these loops
# two counters for two files,directories (here, the same one)
for ii in range(0, len - 1):
for kk in range(0, len - 1):
# open the main loop
root1 = Tk()
# increasing one unit each time the loop is repeated
j = ii + 1
dl1 = dirlist[0 + j] # in each loop, next image is loaded
# joining the path with image filename
im1 = Image.open(os.path.join(path1, dl1))
im1 = image1.resize(im1.size[0] / sm, im1.size[1] / sm)
# ready to display image in tk
display1 = ImageTk.PhotoImage(image1)
# labelling image is very essential
label1 = Label(root1, im=display1)
label1.pack()
# second counter for the same directory, file
# to make the second pair
m = kk + 1
dl2 = dirlist[0 + m]
# second image from the same directory is loaded
im2 = Image.open(os.path.join(path1, dl2))
im2 = image2.resize(im2.size[0] / sm, im2.size[1] / sm)
# ready to display
display2 = ImageTk.PhotoImage(image2)
# load it to the same label pack, in order
# to be displayed in the same canvas
label1 = Label(root1, image=display2)
label1.pack()
# closing the main loop
root1.mainloop()
# all possible pairs of two images inside
# a directory will be displayed one next to other
# If you have lets sya 10 images then 10*10=100
# canvas with two images each will be diplayed
<code>
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.