#### 添加选择图片路径组件
选择待修改图片的路径。
def selectFilePath():
global img_path
# 选择文件path接收文件地址
img_path = Path(filedialog.askopenfilename(title=‘选择原图片’))
x, y = Image.open(img_path).size
entry4.insert(0, str(x) + ‘x’ + str(y))
path1.set(img_path)
path1 = tk.StringVar()
entry1 = ttk.Entry(window, textvariable=path1, width=30)
entry1.insert(0, ‘格式要求png’)
button1 = ttk.Button(window,width=10, text = “图片路径”, command = selectFilePath)
![在这里插入图片描述](https://img-blog.csdnimg.cn/68083ca3f1fb4fce90dbe2c1362748e6.png?x-oss-process=image/watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBARHJlYW3kuLZLaWxsZXI=,size_12,color_FFFFFF,t_70,g_se,x_16#pic_center)
#### 添加选择保存路径组件
选择修改后图片的保存路径,该路径为文件夹。
def selectDirPath():
global dir_path
# 选择文件path接收文件地址
dir_path = Path(filedialog.askdirectory(title=‘选择图片保存路径’))
path2.set(dir_path)
path2 = tk.StringVar()
entry2 = ttk.Entry(window, textvariable=path2, width=30)
button2 = ttk.Button(window,width=10, text = “保存路径”, command = selectDirPath)
![在这里插入图片描述](https://img-blog.csdnimg.cn/c16c9f8a3b4d4581b2ce4e122b40025f.png#pic_center)
#### 添加选择背景颜色组件
这里使用`tkinter` 的 `colorchooser` 来当作颜色板,不得不说,实在是太好用了 。
def ChooseColor():
global bg_color
# 返回两种格式的颜色代码,这里只保存十六进制的
_, bg_color = colorchooser.askcolor(title=‘颜色选择器’)
path3.set(bg_color)
path3 = tk.StringVar()
entry3 = ttk.Entry(window, textvariable=path3, width=30)
button3 = ttk.Button(window, text=‘背景颜色’, command=ChooseColor)
![在这里插入图片描述](https://img-blog.csdnimg.cn/57806241a98b41169ac7cdb2e96a4979.png#pic_center)
![在这里插入图片描述](https://img-blog.csdnimg.cn/2006498a8bcb4207a1b99273108ee942.png?x-oss-process=image/watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBARHJlYW3kuLZLaWxsZXI=,size_17,color_FFFFFF,t_70,g_se,x_16#pic_center)
#### 添加填写图片尺寸组件
如果要修改图片的话,就填写这一栏,默认为原图尺寸,这里如果想要标准尺寸的话,建议先自己百度一下,如标准一寸就是295x413(标准一寸)。
设置图片大小,默认原图大小,格式如295x413(标准一寸)
label = ttk.Label(window, text=‘默认原图大小,若要修改请按[]内
格式,如 [295x413] (标准一寸照)’, wraplength=200, style=‘two.TLabel’)
entry4 = ttk.Entry(window, width=30)
label1 = ttk.Label(window, text=‘图片尺寸’, style=‘three.TLabel’)
![在这里插入图片描述](https://img-blog.csdnimg.cn/240ee18c5713467888210cef0d5dbd41.png#pic_center)
#### 添加填写API-KEY组件
将输入框设置显示值为 “\*”,可以达到隐藏显示值的效果。这里就要填写上面获取的 `api-key` 了。
填写api-key
entry5 = ttk.Entry(window, width=30, show=“*”)
label2 = ttk.Label(window, text=‘api-key’, style=‘three.TLabel’)
![在这里插入图片描述](https://img-blog.csdnimg.cn/434f07e57b91448db03f56e5ba077931.png#pic_center)
#### 添加控制按钮
* **修改背景按钮**:只修改原图的背景图,需要指定原图路径,保存路径,背景颜色等。
* **修改尺寸按钮**:只修改原图的尺寸,需要指定原图路径,保存路径,图片尺寸等。
* **同时修改按钮**:同时修改原图的尺寸与背景,需要指定原图路径,保存路径,图片颜色(可选),图片尺寸(可选),如果未选择颜色,尺寸则默认蓝底,图片尺寸为295x413(标准一寸)。
添加“同时修改”按钮
button4 = ttk.Button(window, text = “同时修改”, command=change_bg_size)
添加“修改背景”按钮
button5 = ttk.Button(window, text = “修改背景”, command=replace_bg)
添加“修改尺寸”按钮
button6 = ttk.Button(window, text = “修改尺寸”, command=change_size)
![在这里插入图片描述](https://img-blog.csdnimg.cn/d9bfb8ff5d0c4b65a7b24a2fde56b214.png#pic_center)
#### 添加输出框显示
显示运行结果信息。
添加输出框显示
tree = ttk.Treeview(height=1, show=(“tree”, “headings”))
![在这里插入图片描述](https://img-blog.csdnimg.cn/3bc62ccac8464b279ff69c4df8596e93.png#pic_center)
#### 设置组件位置
这里使用 `grid()` 来设置位置,也可以用 `pick()` ,但个人更倾向于前者。
main_label.grid(row = 0, column = 0, pady=5)
entry1.grid(row = 1, column = 0, pady=5)
button1.grid(row = 1, column = 1, padx=20)
entry2.grid(row = 2, column = 0, pady=5)
button2.grid(row = 2, column = 1, padx=20)
entry3.grid(row = 3, column = 0, pady=5)
button3.grid(row = 3, column = 1, padx=20)
label.grid(row = 4, column = 0, pady=5)
entry4.grid(row = 5, column = 0, pady=5)
label1.grid(row = 5, column = 1, pady=5)
entry5.grid(row = 6, column = 0, pady=5)
label2.grid(row = 6, column = 1, pady=5)
button4.grid(row = 7, column = 1, padx=5)
button5.grid(row = 7, column = 0, padx=5)
button6.grid(row = 8, column = 0, padx=5)
tree.grid(row=9, column=0, pady=5)
#### 设置组件样式
再原组件的基础上修改自己喜欢的样式。
label_style = ttk.Style()
label_style.configure(“one.TLabel”, font=(“微软雅黑”, 16, ‘bold’), foreground=“red”, background=“yellow”)
label_style1 = ttk.Style()
label_style1.configure(“two.TLabel”, font=(“微软雅黑”, 9), foreground=“blue”, background=“yellow”)
label_style2 = ttk.Style()
label_style2.configure(“three.TLabel”, font=(“微软雅黑”, 10), foreground=“blue”, background=“yellow”)
![在这里插入图片描述](https://img-blog.csdnimg.cn/fdd10b59ddf74977a1d2e5ad2bae79b9.png?x-oss-process=image/watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBARHJlYW3kuLZLaWxsZXI=,size_12,color_FFFFFF,t_70,g_se,x_16#pic_center)
---
### 源码打包
虽然之前的文章中已经介绍过很多次打包的方法,但为了新读者,还是再来简单讲解一下。
首先要确保已经安装 `pyinstaller`,没有安装的可以先安装一下。
pip install -i https://pypi.douban.com/simple pyinstaller
`pyinstaller` 使用时的常用参数含义:
>
> **-F**:打包单个文件,产生一个文件用于部署(默认),如果代码都写在一个 `.py` 文件时使用,项目有多个文件时不要使用
>
>
>
> ```
> pyinstaller -F xxx.py
>
> ```
>
> **-D**:打包多个文件,产生一个目录用于部署(默认),用于框架编写的代码打包
>
>
>
> ```
> pyinstaller -D xxx.py(项目入口文件)
>
> ```
>
> **–key=keys**:使用 `keys` 进行加密打包
>
>
>
> ```
> pyinstaller --key=123456 -F xxx.py
>
> ```
>
> **-d**:产生 `debug` 版本的可执行文件
>
>
> **-p**:用来添加程序所用到的包的所在位置,设置导入路径,可以用 `;` ( Linux 使用 `:`)分割来指定多个目录。
>
>
> **-w**:表示不用控制台窗口,使用 Windows 子系统执行,当程序启动的时候不会打开命令行(只对 Windows 有效)
>
>
> **-c**:表示打开控制台窗口,使用控制台子系统执行,当程序启动的时候会打开命令行(默认)(只对 Windows 有效)
>
>
> **-i**:将 file.ico 添加为可执行文件的资源,改变程序的图标(只对 Windows 系统有效)
>
>
>
安装完成后,新建一个文件夹,将源文件放到该文件夹下面,打开`cmd`, **cd 进入该文件夹下**(重点),执行下面语句
![在这里插入图片描述](https://img-blog.csdnimg.cn/5b4e4c2288c64c7b8a99ed1d7304616e.png?x-oss-process=image/watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBARHJlYW3kuLZLaWxsZXI=,size_20,color_FFFFFF,t_70,g_se,x_16)
生成的文件结构如下
![在这里插入图片描述](https://img-blog.csdnimg.cn/0dfc1067c49b4bcf8834a6a62395873a.png?x-oss-process=image/watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBARHJlYW3kuLZLaWxsZXI=,size_20,color_FFFFFF,t_70,g_se,x_16)
`exe` 可执行文件在 `dist` 目录下
![在这里插入图片描述](https://img-blog.csdnimg.cn/77db1a5ebad548e4b324bbeaba2108aa.png)
>
> **这就是本文所有的内容了,如果感觉还不错的话。**❤ 点个赞再走吧!!!❤
>
> ![在这里插入图片描述](https://img-blog.csdnimg.cn/20210525193952705.png#pic_center)
> **后续会继续分享各种干货,如果感兴趣的话可以点个关注不迷路哦~。**
>
>
>
### 最后
Python崛起并且风靡,因为优点多、应用领域广、被大牛们认可。学习 Python 门槛很低,但它的晋级路线很多,通过它你能进入机器学习、数据挖掘、大数据,CS等更加高级的领域。Python可以做网络应用,可以做科学计算,数据分析,可以做网络爬虫,可以做机器学习、自然语言处理、可以写游戏、可以做桌面应用…Python可以做的很多,你需要学好基础,再选择明确的方向。这里给大家分享一份全套的 Python 学习资料,给那些想学习 Python 的小伙伴们一点帮助!
#### 👉Python所有方向的学习路线👈
Python所有方向的技术点做的整理,形成各个领域的知识点汇总,它的用处就在于,你可以按照上面的知识点去找对应的学习资源,保证自己学得较为全面。
![](https://img-blog.csdnimg.cn/img_convert/604bae65027d4d67fb62410deb210454.png)
#### 👉Python必备开发工具👈
工欲善其事必先利其器。学习Python常用的开发软件都在这里了,给大家节省了很多时间。
![](https://img-blog.csdnimg.cn/img_convert/fa276175617e0048f79437bd30465479.png)
#### 👉Python全套学习视频👈
我们在看视频学习的时候,不能光动眼动脑不动手,比较科学的学习方法是在理解之后运用它们,这时候练手项目就很适合了。
![](https://img-blog.csdnimg.cn/img_convert/16ac689cb023166b2ffa9c677ac40fc0.png)
#### 👉实战案例👈
学python就与学数学一样,是不能只看书不做题的,直接看步骤和答案会让人误以为自己全都掌握了,但是碰到生题的时候还是会一筹莫展。
因此在学习python的过程中一定要记得多动手写代码,教程只需要看一两遍即可。
![](https://img-blog.csdnimg.cn/img_convert/0d8c31c50236a205928a1d8ae8a0b883.png)
#### 👉大厂面试真题👈
我们学习Python必然是为了找到高薪的工作,下面这些面试题是来自阿里、腾讯、字节等一线互联网大厂最新的面试资料,并且有阿里大佬给出了权威的解答,刷完这一套面试资料相信大家都能找到满意的工作。
![](https://img-blog.csdnimg.cn/img_convert/99461e47e58e503d2bc1dc6f4668534a.png)
**[需要这份系统化学习资料的朋友,可以戳这里无偿获取](https://bbs.csdn.net/topics/618317507)**
**一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!**