# 代码长度:61行(最后一行)
#项目所用模块:tkinter(GUI模块)、PIL(图像处理模块)、matplotlib(绘图模块,功能与Matlab中的plot类似)
#项目界面:
#代码实现
1.导入所需模块/方法
#! python3#-*-coding:utf-8-*- from tkinter import * from PIL import Image, ImageFont, ImageDraw import matplotlib as plot
2.创建GUI界面 从Frame类中派生出Picture(类的名称,自定义)类,在这个类(父容器)下将包含所有的Button、Label和输入框等Widget
class Picture(Frame): def __init__(self, master=None): Frame.__init__(self, master) self.pack() #封装父容器 self.creatWidgets() #自定义Widgets ‘next...‘
def creatWidgets(self): self.funcLabel = Label(self, text=‘**向图片中添加字符串的小程序‘) #文本Widget self.funcLabel.pack() self.picLabel = Label(self, text=‘请输入图片路径‘) #文本Widget self.picLabel.pack() self.picPath = Entry(self) #输入框Widget self.picPath.pack() self.strLabel = Label(self, text=‘请输入字符串‘) #文本Widget self.strLabel.pack() self.strContent = Entry(self) #输入框 self.strContent.pack() self.printButton = Button(self, text=‘预览‘, command=self.picOpen) #按钮Widget self.printButton.back() self.saveButton = Button(self, text=‘保存‘, command=self.savePic) #按钮Widget self.saveButton.pack() self.quitButton = Button(self, text=‘退出‘, command=self.quit) #按钮Widget self.quitButton.pack()
3.图像处理 包括打开图像、print文字、图像预览以及图像保存
def picOpen(self): image = Image.open(self.picPath.get()) #打开图片 w, h = image.size font = ImageFont.truetype(‘arial.ttf‘, 36) #设置文本字体和字号 draw = ImageDraw.Draw(image) #将文本‘打印’到图片 draw.text((w-20,0), self.strContent.get(), font=font, fill=(255,0,0))
#image.show() #调用系统看图软件,速度慢 plot.figure(‘picAddStr‘) #调用matplotlib库 plot.imshow(image) plot.show() self.image = image
def savePic(self): #保存图片 self.image.save(‘1.png‘)
4. 调用
pic = Picture() pic.master.title(‘picAddStr‘) pic.mainloop()
原文地址:https://www.cnblogs.com/i-orange/p/9293449.html
时间: 2024-10-10 06:00:25