使用tkinter简单实现 缩放图片 功能
先看效果图:
看个 动态效果图也可以:
目录结构如下:
使用模块:
- 标准模块:
math
tkinter - 第三方模块:
PIL
代码如下:
import math
import tkinter as tk
from PIL import Image,ImageTk
root = tk.Tk()
root.title('缩放图片')
root.geometry('700x500+300+100')
default_val = 50
scale_var=tk.IntVar()
scale_var.set(default_val)
scale = tk.Scale(root,orient=tk.HORIZONTAL,variable=scale_var)
scale.pack(fill="x")
img = Image.open("scale.png")
img1 = ImageTk.PhotoImage(img)
imgLabel = tk.Label(root,image=img1)
imgLabel.pack(fill="both")
w,h = img.size
scalew=math.ceil( w/default_val )
scaleh=math.ceil( h/default_val )
def scaleFn(val):
# print(val)
if int(val) <= 10:#限制
return
targetw = int(val)*scalew
targeth = int(val)*scaleh
bg = img.resize((targetw, targeth))
bgg = ImageTk.PhotoImage(bg)
imgLabel.config(image=bgg)
imgLabel.image = bgg
scale.config(command=lambda x:scaleFn(x))
root.mainloop()
---- 结束 ----
仅学习。