簡體   English   中英

Tkinter-將每兩個文件夾的所有成對圖像並排顯示在同一顯示中

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM