tkinter

#python #tkinter #python-imaging-library

Вопрос:

В настоящее время я работаю над проектом из книги Анджелы Ю «100 дней Python» (на udemy). Один из этих проектов запрашивает приложение с графическим интерфейсом для добавления водяных знаков к изображению:

мой код до сих пор таков:

 # Imports for tkinter
import tkinter as tk
from tkinter import filedialog, Entry, StringVar

# pillow imports
from PIL import Image, ImageFont, ImageDraw


def open_file ():
    file = filedialog.askopenfilename()
    if file == "":
        pass
    else:
        watermark_image(file, text=get_u_input())


def watermark_image (file, text):
    image = Image.open(file, mode="r")
    watermark_image = image.copy()
    font = ImageFont.truetype("arial.ttf", 100)
    draw = ImageDraw.Draw(watermark_image)
    draw.text((0, 0), text, (25, 75, 80), font=font) # this line 
    watermark_image.save(f"{file}_watermarked.jpg")


def get_u_input ():
    user_input = text.get()
    return user_input


window = tk.Tk()
window.title("Watermark your image")
window.minsize(width=500, height=300)
my_label = tk.Label(text="Miles")
my_label.grid(column=1, row=0)
str = StringVar()
text = Entry(window, textvariable=str)
text.grid(column=2, row=2)
# btn_get_text = tk.Button(text="set text to input", command=get_u_input())
# btn_get_text.grid(column=3, row=2)
btn = tk.Button(text="Search an Image", command=open_file)
btn.grid(column=3, row=3)

window.mainloop()
 

Сейчас это не очень красиво, и это не ООП, но я думаю, что это уже должно быть помечено галочкой, чтобы я «сделал это», но я хотел пойти дальше и внести некоторые изменения:

  1. Я хотел, чтобы пользователь мог указать координаты (отметил строку в коде комментарием) и
  2. Я хотел, чтобы пользователь мог настроить цвет (так что довольно простые дополнения 😀 )

Я попытался найти координаты sth. подобный этому:

 tuple(input("Specify the coordinates: ")) 
 

Когда я работал над логикой командной строки (что, естественно, я сделал первым), но это не сработало, поэтому я начал с остального (делая основы).

Кто-нибудь может мне помочь с этим?

Я, вероятно, использую это для создания приложения django позже, в котором пользователи смогут добавлять водяные знаки текста и изображений к своим изображениям, мне просто нужно больше практиковаться с Python 😀

Всего наилучшего и спасибо 🙂

Комментарии:

1. Вы будете делать все, что захотите, точно так же, как вы делали до сих пор, вы можете либо проанализировать информацию. Или вы можете создать две записи и собрать из них данные. Тогда вы бы использовали эти переменные вместо того, чтобы подключать информацию к аппаратному обеспечению.