简言
这个简单易懂,可扩展性强,需要什么功能就可以扩展,目前依靠 Python 解释器和相关库执行,之后可能会通过打包或做 GUI 扩展等做成 exe 文件。
下面是 全代码
。
#!/usr/bin/env python
# -*- coding:utf-8 -*-
"""
@Author: _Scale
@File name: IPS.py
@Creative time: 2020/1/14 9:34
@Document description: pillow 模块实现使用菜单执行相应命令进行图像处理(Image_processing_system)
"""
from PIL import Image # 导入图像处理相关库函数
import random
def safe():
while True:
# 安全认证(safety certificate)
Verification_code = [] # Verification_code译为验证码
for i in range(4):
j = random.randint(0, 99)
if j % 2 == 0:
temp1 = random.randint(0, 9)
Verification_code.append(str(temp1))
else:
temp2 = random.randint(65, 90)
Verification_code.append(chr(temp2))
print('验证码:', ''.join(Verification_code))
Verification_code_two = ''.join(Verification_code)
user_input = input('请输入看到的验证码(区分大小写):')
# 判断验证是否通过
if user_input == Verification_code_two:
print('| 验证通过 |')
break
else:
print('-' * 20);print('| 请输入正确的验证码 | ')
continue
def show_menu():
"""显示菜单模块"""
print('\033[1;30m%s\033[0m' % '''*******************************************************
图像处理系统v2.0
1.灰白渲染 2.退出系统
*******************************************************''')
def convert_image(user):
'''渲染成灰白图像'''
img = Image.open(user).convert("L");img.show()
user_two = input('键入回车键以继续...')
if user_two == True:
pass
try:
if user_two == 'Y' or 'y':
user_three = input('请设置保存图像的绝对路径,不保存键入回车键以继续:')
img.save(user_three)
except:
pass
def main():
"""主函数"""
while True:
# 提示用户输入
try:
user_four = input('键入数字0可退出,按回车键以继续:')
if user_four in ["0"]:
break
else:
print('-' * 20)
user = input('请输入需要处理图像的绝对路径:')
img = Image.open("%s" % user)
print("此次处理图像的绝对路径是:%s" % user);print("图片长宽:", img.size);print("像素类型:", img.mode);print("图片格式:", img.format)
except:
print('-' * 20);print('|请输入正确的绝对路径名!|') # 路径有误则再次提示用户输入
continue
# 显示操作系统菜单
show_menu()
number = input('\033[1;30m%s\033[0m' % '请选择需要的序号:')
# 执行对应功能
if number in ["1", "2"]:
if number == "1":
convert_image(user)
elif number == "2":
print('=' * 10);print('\033[1;33m%s\033[0m' % " Goodbye!");print('=' * 10)
break
pass
if __name__ == '__main__':
safe()
main()
日志
因为这个还有很多缺陷,所以希望 CSDN 的大家发现了什么 bug 和不妥的地方就请在评论区留言,我会及时回复和修复 bug!如果有修复 bug 的建议当然就更好啦!
ps:2020-04-12,增加确认是否能支持大小写;增加一些注释;增加验证码的显示提示;修复验证码正确了却不能通过;去掉了提示语上下的符号。
ps:2020-04-14,把安全验证封装成了函数,希望之后能优化出更安全的验证算法;如果大佬们觉得有什么地方可以优化的请在评论区留言,我会及时回复!
ps:2020-05-11,验证码缩减到 4 位;利用分号(;)缩减了几十行代码;过滤掉了大量不必要代码;删掉了很多不完善的功能,之后会努力做出更强大的功能。
ps:2020-07-15,更正了源码的展示。
感谢 CSDN,感谢 C 友们的支持