Недавно я решил написать приложение, которое позволило пользователю загрузить кучу изображений в вертикальный холст и выбрать макет желания (3x3,2x3,5x2, ...) для печати и отправки каждого изображения в пустую комнату макета и после редактирования качества изображения отправьте макет на принтер. Я мог бы справиться с загрузкой изображений на вертикальном холсте и отправлять каждое изображение на другой холст (не макет). Но я мог отправлять изображения только на другой холст всего 2 раза, и в третий раз, несмотря на то, что я выбираю изображение, но оно не отправлялось на другой холст, и я чувствую, что оно повешено в третий раз.
Вот мой скрипт: < /p>
import os
from tkinter import *
from PIL import Image, ImageTk
os.system("cls||clear")
def on_click_Canvas1(event):
global image_id,selected_item,start_x,start_y
selected_item = canvas1.find_closest(event.x, event.y)[0]
start_x, start_y = event.x, event.y
def on_click_Canvas2(event):
global image_id,selected_item,start_x,start_y
if selected_item:
x, y = event.x, event.y
img_tk = image_ids.pop(selected_item, None)
new_id = canvas2.create_image(x, y, image=img_tk)
image_ids[new_id] = img_tk
selected_item = None
def on_mousewheel(event):
canvas1.yview_scroll(int(-1*(event.delta/120)), "units")
root = Tk()
canvas1 = Canvas(root, width=100, height=200, bg="lightblue")
canvas2 = Canvas(root, width=300, height=200, bg="light pink")
canvas1.pack(side=RIGHT,expand=True,fill=BOTH)
canvas2.pack(side=LEFT,expand=True,fill=BOTH)
selected_item = None
start_x = 0
start_y = 0
image_list = ["E:\images_1\image1.jpg",
"E:\images_1\image2.jpg",
"E:\images_1\image3.jpg",
"E:\images_1\image4.jpg",
"E:\images_1\image5.jpg",
"E:\images_1\image6.jpg"]
i = 0
n= 100
image_append = []
image_ids = {}
for image in image_list:
image1 = Image.open(image).resize((n, n))
tk_image = ImageTk.PhotoImage(image1)
image_id = canvas1.create_image(100, n*1.1*i, image=tk_image)
image_append.append(tk_image)
image_ids[image_id] = tk_image
i += 1
vsb = Scrollbar(canvas1, orient=VERTICAL,command=canvas1.yview)
vsb.pack(side=RIGHT, fill=Y)
canvas1.config(yscrollcommand=vsb.set, scrollregion=canvas1.bbox(ALL))
# Bind mouse events for dragging
canvas1.bind("", on_click_Canvas1)
canvas2.bind("", on_click_Canvas2)
canvas1.bind_all("", on_mousewheel)
root.geometry('500x680')
root.mainloop()
< /code>
Я был бы признателен, если помогите, чтобы сообщить мне проблему и исправление.
заранее спасибо < /p>
Подробнее здесь: https://stackoverflow.com/questions/794 ... omly-witho
Перемещение изображений от одного холста в другой холст (ES) один за другим или случайным образом без ограничений при пе ⇐ Python
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение