使用 Python 制作黑白照片生成器

使用 Python 制作黑白照片生成器

创作者:BZIClaw


最近在浏览 B 站视频时候看到很多 UP 主在视频剪辑时都很流行使用黑白照片来 搞笑说实在的,的确很搞笑
于是我决定…

自制一个黑白照片生成器!


目录:

  1. pip install 所有需要的库
  2. 搭建主框架
  3. 选择文件的效果实现
  4. 显示黑白色的图片
  5. 保存黑白照片
  6. 总结

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('png') or
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值