python处理图片文件_python 学习(二)处理图片、TXT文档

一、尝试实现场景:将一个txt文档内容读到程序的数组内

1、新建一个文档 array.txt,写入内容 ,如:

2、使用命令行读取:

1)在上述新建文档位置相同目录下打开命令提示窗

2)打开文件,读入变量line中,打印可查看结果

3)不知道上述命令怎么办? 百度python怎么读txt 或查看官方文档、教程

3、使用文件读取,在新建文档同级目录下新建 rtext.py文件,编写代码:

importnumpy as np

filename= 'array.txt' #txt文件和当前脚本在同一目录下,所以不用写具体路径

pos =[]

Efield=[]

with open(filename,'r') as file_to_read:whileTrue:

lines= file_to_read.readline() #整行读取数据

if notlines:break

#将整行数据分割处理,如果分割符是空格,括号里就不用传入参数,如果是逗号,则传入‘,'字符。

p_tmp, E_tmp = [float(i) for i inlines.split()]

pos.append(p_tmp)#添加新读取的数据

Efield.append(E_tmp)passpos= np.array(pos) #将数据从list类型转换为array类型。

Efield =np.array(Efield)pass

print(pos)print(Efield)

执行如下:

成功将文档内容写入数据中。接下来可编程处理。处理完成后写入txt。写入使用 file.write("要写入的内容") 即可

4、将文本中的文字转换为图片,需要安装图片插件这里用PILLOW,命令行输入 pip install pillow 安装完成后,新建一个gxh.txt,写入要生成图片的文本

新建 t2p.py文件,插入以下代码

importosfrom PIL importImage, ImageFont, ImageDraw#import numpy as np

filename= 'gzh.txt'

#(100,50)设置图片大小,(255,255,255)设置图片背景钯

font = ImageFont.truetype(os.path.join("fonts", "msyh.ttf"), 20)#设置字体

pos =[]

with open(filename,'r') as file_to_read:whileTrue:

lines= file_to_read.readline() #整行读取数据

if notlines:break

#将整行数据分割处理,如果分割符是空格,括号里就不用传入参数,如果是逗号,则传入‘,'字符。

p_tmp = [str(i) for i inlines.split()]

pos.append(p_tmp)#添加新读取的数据

pass

#pos = np.array(pos) # 将数据从list类型转换为array类型。

pass

for text inpos:

im= Image.new("RGB", (150, 30), (255, 255, 255))

dr=ImageDraw.Draw(im)

text=''.join(text)

dr.text((10, 3),text, font=font, fill="#000000")

im.show()

im.save("%s.png"%text)

命令框输入 python p2t.py,在同目录下生成五张图片,txt文件中一行字符一张图片。

5、使用图形界面输入文本,生成验证码图片,执行效果如下:

新建txt2pic.py文件并插入如下代码:

from PIL import Image, ImageDraw, ImageFont, ImageFilter #导入图片需要库

from tkinter import * #Python自带的库是支持Tk的Tkinter,使用Tkinter,无需安装任何包,就可以直接使用

importtkinter.messagebox as messageboximportrandom,os,PIL#图片对象

classRndpic():#随机颜色1:

defrndColor(self):return (random.randint(64, 255), random.randint(64, 255), random.randint(64, 255))#随机颜色2:

defrndColor2(self):return (random.randint(32, 127), random.randint(32, 127), random.randint(32, 127))defdrwRndpic(self,txt):#240 x 60:

width = 60 * 4height= 60image= PIL.Image.new('RGB', (width, height), (255, 255, 255))#创建Font对象:

font = ImageFont.truetype(os.path.join("fonts", "msyh.ttf"), 45)#创建Draw对象:

draw =ImageDraw.Draw(image)#填充每个像素:

for x inrange(width):for y inrange(height):

draw.point((x, y), fill=self.rndColor())#输出文字 for t in range(len(txt)):

draw.text((60 * t + 10, 5), txt[t], font=font, fill=self.rndColor2()) #修改text[t]yl rndChar()为生成随机数

#模糊:

image =image.filter(ImageFilter.BLUR)#显示并保存图片

image.show()

image.save(txt+'.jpg', 'jpeg')classApplication(Frame):def __init__(self, master=None):

Frame.__init__(self, master)

self.pack()

self.createWidgets()#生成界面 提示、输入框、执行、退出按键

defcreateWidgets(self):

self.Label= Label(self, text='please 4 char:')

self.Label.pack()

self.txtInput=Entry(self)

self.txtInput.pack()

self.alertButton= Button(self, text='生成图片', command=self.t2p)

self.alertButton.pack()

self.quitButton= Button(self, text='Quit', command=self.quit)

self.quitButton.pack()#定义生成图片函数

deft2p(self):

txt= self.txtInput.get() or 'null'rndpic=Rndpic()

draw=rndpic.drwRndpic(txt)

app=Application()#设置窗口标题:

app.master.title('Hello World')#主消息循环:

app.mainloop()

6.打包项目,生成个人小工具:

在上面txt2pic.py文件目录下打开命令提示窗输入 pyinstaller -F txt2pic.py 打包文件,在生成的dist文件平下找到txt2pic.exe,双击执行即可完成个人图片生成小工具.

总结: 1.图形界面后续学习,现在界面超丑

2.图片只显示4位字符,可修改程序图片大小的设置内容增加通用性

3.画图功能后续学习,初学本案例图片太简陋

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值