用Python写过哪些的小工具
发布网友
发布时间:2022-03-25 21:37
我来回答
共1个回答
热心网友
时间:2022-03-25 23:06
为了逃避学校布置的美术作业,写过一个画素描的程序。
从后再也不担心美术作业了。
也就是利用Python的PIL库来 将彩色图片转化为素描效果的图片
更新说明:
前面那个程序写的太粗糙了,不好意思拿出来分享,重新写了一遍,加上了GUI图形界面。
配置环境:
windows 10
python 3.5
image.py
from PIL import Image
import numpy as np
import os
import join
import time
def image(sta,end,depths=10):
a = np.asarray(Image.open(sta).convert('L')).astype('float')
depth = depths # (0-100)
grad = np.gradient(a) # 取图像灰度的梯度值
grad_x, grad_y = grad # 分别取横纵图像梯度值
grad_x = grad_x * depth / 100.
grad_y = grad_y * depth / 100.
A = np.sqrt(grad_x ** 2 + grad_y ** 2 + 1.)
uni_x = grad_x / A
uni_y = grad_y / A
uni_z = 1. / A
vec_el = np.pi / 2.2 # 光源的俯视角度,弧度值
vec_az = np.pi / 4. # 光源的方位角度,弧度值
dx = np.cos(vec_el) * np.cos(vec_az) # 光源对x 轴的影响
dy = np.cos(vec_el) * np.sin(vec_az) # 光源对y 轴的影响
dz = np.sin(vec_el) # 光源对z 轴的影响
b = 255 * (dx * uni_x + dy * uni_y + dz * uni_z) # 光源归一化
b = b.clip(0, 255)
im = Image.fromarray(b.astype('uint8')) # 重构图像
im.save(end)
def mains(numbers):
number = int(numbers)
startss = os.listdir(".\输入----图片")
time.sleep(2)
for starts in startss:
start = ''.join(starts)
print('正在转化--图片: ' + start)
sta = './' + '输入----图片/' + start
end = './' + '输出----图片/' + 'HD_20' + start
image(sta=sta,end=end,depths=number)
简单来说,就是利用python的Numpy库,将图像降维转化为数字化的数据,之后对数据进行操作,再利用pillow库将操作好的数据转化为素描效果的图片。
GUI图形界面程序
main.py
import os
from image import mains
from tkinter import *
def exists_mkdir():
if os.path.exists('输出----图片') and os.path.exists('输入----图片'):
pass
else:
os.mkdir('输出----图片')
os.mkdir('输入----图片')
def images():
try:
s1 = e1.get()
a = mains(s1)
c["text"] = "我们的程序运行成功了"
except Exception:
c["text"] = "程序运行出错了,可能是缺少了两个配置文件"
#创建程序运行需要的工作目录
exists_mkdir()
tk = Tk()
# 设置窗口大小和位置
tk.geometry('430x350+80+60')
# 不允许改变窗口大小
tk.resizable(False, False)
## 用来显示Label组件
tk.title('素描图生成器')
w1 = Label(tk,text='作者博客:www.liuchaoblog.live')
w = Label(tk,text='')
w2 = Label(tk,text='欢迎使用:')
w3 = Label(tk,text='步骤一:将需要转化的图片放入 输入----图片 文件夹下')
w4 = Label(tk,text='步骤二:输入 0-100的数值,数值越大,颜色越深。--------标准参数是 10 ')
w5 = Label(tk,text='步骤三:点击确认 运行程序 等待出现提示')
w6 = Label(tk,text='步骤四:到输入----图片 文件夹找到素描图')
w1.grid(row=0,column=0,sticky=W)
w.grid(row=1,column=0,sticky=W)
w2.grid(row=2,column=0,sticky=W)
w3.grid(row=3,column=0,sticky=W)
w4.grid(row=4,column=0,sticky=W)
w5.grid(row=5,column=0,sticky=W)
w6.grid(row=6,column=0,sticky=W)
l = Label(tk,text="输入 0-100的数值")
l.grid(row=8,column=0,sticky=E)
## 用来显示输入框
e1 = Entry(tk)
e1.grid(row=10,column=0,sticky=E)
## 用来显示Button
b = Button(tk,text='确定',command=images)
b.grid(row=12,column=0,sticky=E)
c = Label(tk,text="",background="yellow")
c.grid(row = 15)
# 启动消息主循环
tk.mainloop()
运行效果:
这个程序我用pyinstaller做成exe文件了。
Tkinter小应用,python写出倒计时工具
倒计时小工具挺有用的,如果你是学生的话,可以折腾学习一下这个小工具。我用的是python+Tkinter写出来的。这里面需要说一下Tkinter,Tkinter是Python的一个标准包,因此我们并不需要安装它。我们将从创建一个窗口开始,然后我们在其之上加入一些小组件,比如按钮,复选框等,并使用它们的一些属性。话不...
python Tkinter 写的一个屏幕录制小工具
设计与实现一个屏幕录制小工具,满足日常工作演示视频录制需求。功能需求聚焦于录制屏幕的特定区域,并生成视频文件。界面设计简洁,仅包含三个按钮:用于选择录制区域、启动录制以及结束录制。操作流程如下:1. 通过点击“选择录制区域”按钮,可以框选屏幕内的任意区域进行录制。2. 按下“开始录制”按钮,录...
10款超好用的Python开发工具
PyCharm是由JetBrains打造的一款Python IDE。它有两个版本,免费社区版和专业版。PyCharm简单易用,支持多种主题模式,并能与IPython notebook集成,支持Anaconda等科学计算包,以及众多第三方web开发框架。Spyder:开源的Python集成开发环境 Spyder是一个开源的Python集成开发环境,适用于科学计算方面的Python开...
用Python开发一个有趣的翻译小工具
第一个问题是找到一个好用的翻译工具。我强烈推荐DeepL,尽管它不是大厂的产品,但中英翻译效果远超谷歌和Bing,更不用说国内的一些所谓专业翻译工具了。有经验的都知道,没有经验的可以去官网体验一下。第二个问题是使用Python自动保存译文。本文主要介绍这部分内容。自动保存译文,首先要明确译文来源。排...
如何用 Python、Flet 和百度OCR 制作批量信息采集小工具——界面...
Python Flet,作为我们的首选框架,以其简洁的架构和无需复杂前端后端的优势,为快速开发出美观且跨平台的应用提供了可能。1. 设计界面雏形 首先,我们导入必要的flet模块,接着定义main函数,它是界面启动的入口点:运行这段代码后,我们得到的是一个初始的空白界面。2. 添加控件和布局 我们从添加基础...
手摸手系列之用Python制作Windows小工具及将Python封装为exe可执行程 ...
在SaaS项目开发中,为了解决业务人员的特定需求,即无需编程知识的小姐姐们能方便、安全地根据批次号删除数据,我设计了一个Python小工具,并将其封装为Windows可执行程序(exe)。Python原本需要Python环境才能运行,但通过exe封装,用户无需安装额外的环境,即可在Windows上直接使用。将Python程序打包为exe的...
python制作翻译小工具
代码的核心部分包括:定义翻译函数,使用pygtrans.Translate和quicktranslate.get_translate_youdao。设置GUI界面,接收用户输入的路径和翻译要求。遍历文件、表和单元格,将内容传入翻译函数。将所有步骤整合,形成完整的翻译程序。这个工具通过简洁的步骤,帮助用户高效地进行Excel内容的多语言翻译。
好学编程:强推10款Python常用的开发工具
在Python编程旅程中,选择合适的开发工具能极大地提升效率。以下是我们推荐的10款Python开发工具,适合不同层次和需求的开发者。1. IDLE - 内置IDEIDLE,作为Python自带的简单IDE,适合初学者入门,提供了基础的交互和编写环境。2. IPython - 交互式计算系统IPython的强大在于其交互式计算和变量补全功能,...
用Python做一个简单的翻译工具!
这个工具的使用非常简便,可以通过pip安装,并在命令行中输入单词进行翻译。如果你想体验谷歌翻译,只需在使用时加上相应的参数。这个教程展示了Python在实际问题中如何作为强大的工具来简化工作流程。你可以通过以下命令安装并使用这个翻译工具:bash pip install [项目名称] -g [项目名称] [要翻译的单词]...
Python写一个命令行工具(基于uncompile6的反编译小工具)
在处理没有源码的python包时,使用uncompile6进行反编译能提供便利。但面对大量包文件,逐一操作显得繁琐。为此,自建命令行工具以一键反编译指定目录下的pyc文件,成为更高效的解决方案。通过使用sys.argv获取命令行输入,例如"uncompile6 -o xxx.py xxx.pyc",解析参数为['uncompile6 ', '-o', '...