使用 Python 制作黑白照片生成器
创作者:BZIClaw
最近在浏览 B 站视频时候看到很多 UP 主在视频剪辑时都很流行使用黑白照片来 搞笑 ,说实在的,的确很搞笑
于是我决定…
自制一个黑白照片生成器!
目录:
- pip install 所有需要的库
- 搭建主框架
- 选择文件的效果实现
- 显示黑白色的图片
- 保存黑白照片
- 总结
1. pip install 所有需要的库
我们需要导入的库是这些:
from tkinter import *
from tkinter import messagebox
from tkinter import filedialog
from tkinter.filedialog import askdirectory
from PIL import Image, ImageTk
import cv2
import os
import easygui
因此我们需要安装这些库:
1. tkinter
2. easygui
3. cv2
安装指令如下:
1. 安装tkinter:pip install tkinter
2. 安装easygui:pip install easygui
3. 安装cv2:pip install opencv-python
注意:cv2 的安装指令不是 cv2 而是 opencv-python
2. 搭建主框架
首先我们把所有安装的库引入,也就是这样:
from tkinter import *
from tkinter import messagebox
from tkinter import filedialog
from tkinter.filedialog import askdirectory
from PIL import Image, ImageTk
import cv2
import os
import easygui
然后我们给我们把主框架搭好,也就是这样:
root = Tk()
root.title('黑白照片生成器 - 冰爪')
root.geometry('400x200')
root.resizable(width=False, height=False)
file1 = None
接下来我们定义一些项目组件,比如文本,按钮什么的,我们先把文本给加上去,这就是这样:
topic = Label(root, text='黑白照片生成器', font=('Arial Bold', 20))
topic.pack()
然后是按钮,也就是这样:
btn = Button(root, text="选择彩色照片", width=50)
btn.place(x=20, y=60)
btn = Button(root, text="查看黑白图片", width=50)
btn.place(x=20, y=100)
Button(root, text="保存黑白照片", width=50).place(x=20, y=140)
最后在末尾再加上一个 mainloop() ,框架就搭好了~~
mainloop()
注意:mainloop() 很重要,如果不加,程序是不会出现 GUI 窗口的!
运行效果如下:
3. 选择文件的效果实现
主框架搭好了,可是点击按钮后却没有任何弹框,根本没法选择呀!别着急,我们现在就来编写!
首先我们要编写好选择图片的函数(在e = StringVar() #文本输入框
的上面编写):
def choose_file():
pass
然后我们要让他实现弹窗的效果,把 pass
代码替换成这样:
selectFileName = filedialog.askopenfilename(initialdir=os.path.abspath(__file__))
这样就实现了一个弹窗效果
可是现在导入的图片除了 .png .jpg .jpeg 以外,连 .txt 文件也行呢!因此我们需要加上一个判断,如这样:
if selectFileName.endswith