📅  最后修改于: 2023-12-03 15:06:53.782000             🧑  作者: Mango
本篇文章将介绍如何使用Python编写一个简单的屏幕旋转应用程序,使你可以通过代码来实现屏幕的旋转。
本程序使用的是Python 3.6版本,我们将使用Tkinter库作为图形界面的组件,并且与PIL库进行交互来处理图片的旋转。程序的主要功能是:打开一张图片文件,对其进行旋转并保存到本地。
import tkinter as tk
from tkinter.filedialog import askopenfilename
from PIL import Image,ImageTk
tkinter
模块提供了图形界面相关的组件和操作;askopenfilename
函数用于打开文件对话框,显示并选择文件;PIL
模块用于处理图片的旋转功能。window = tk.Tk()
window.title("旋转图片应用")
window.geometry("500x500")
window.resizable(False,False)
程序创建窗口,并设置窗口标题、大小和不允许用户手动改变窗口大小。
def rotate_img():
global img_rotate, img_label
img_rotate = img_rotate.rotate(45)
img_tk_rotate = ImageTk.PhotoImage(img_rotate)
img_label.configure(image=img_tk_rotate)
btn_rotate = tk.Button(window, text="旋转45度", command=rotate_img)
btn_rotate.pack(pady=10)
将一个按钮添加到窗口,并将其事件绑定到函数rotate_img()
上。当用户点击按钮时,程序将调用rotate_img()
函数,对图片进行旋转。
def open_file():
file_path = askopenfilename(filetypes=[("image files", "*.jpg;*.png")])
if file_path:
global img_orig, img_rotate, img_tk_orig, img_tk_rotate, img_label
img_orig = Image.open(file_path)
img_rotate = img_orig
img_tk_orig = ImageTk.PhotoImage(img_orig)
img_tk_rotate = img_tk_orig
img_label = tk.Label(window, image=img_tk_orig)
img_label.pack()
btn_open_file = tk.Button(window,text="打开图片",command=open_file)
btn_open_file.pack(pady=10)
添加一个按钮到窗口,将其事件绑定到open_file()
函数上。当用户点击按钮时,程序将调用open_file()
函数,打开一个文件对话框,用户可以选择一个图片文件。
window.mainloop()
运行程序并进入主循环,保持窗口一直显示。
import tkinter as tk
from tkinter.filedialog import askopenfilename
from PIL import Image,ImageTk
window = tk.Tk()
window.title("旋转图片应用")
window.geometry("500x500")
window.resizable(False,False)
def rotate_img():
global img_rotate, img_label
img_rotate = img_rotate.rotate(45)
img_tk_rotate = ImageTk.PhotoImage(img_rotate)
img_label.configure(image=img_tk_rotate)
btn_rotate = tk.Button(window, text="旋转45度", command=rotate_img)
btn_rotate.pack(pady=10)
def open_file():
file_path = askopenfilename(filetypes=[("image files", "*.jpg;*.png")])
if file_path:
global img_orig, img_rotate, img_tk_orig, img_tk_rotate, img_label
img_orig = Image.open(file_path)
img_rotate = img_orig
img_tk_orig = ImageTk.PhotoImage(img_orig)
img_tk_rotate = img_tk_orig
img_label = tk.Label(window, image=img_tk_orig)
img_label.pack()
btn_open_file = tk.Button(window,text="打开图片",command=open_file)
btn_open_file.pack(pady=10)
window.mainloop()
至此,我们已经完成了一个简单的屏幕旋转应用程序。当然,如果我们要使用该程序来完成更加复杂的功能,我们还需要对程序做更多的优化和改进。