嘿嘿嘿!!!
我是只可耐的测试妹子,喜欢玩也喜欢学习,之前同事们建议我开通GitHub来记录学习心得以及项目代码,我也觉得很有必要!!so
最近在学习python,写了一个有趣的关于图片处理的程序,虽然很简单拙劣但是还是满满的开心,希望以后能经常在github上面记录关于学习的有趣事情!
so分割线||我要开始po这个简单有趣的程序了,了解程序请往下看:
首先打开cmd:
cmd 中pip install pillow 安装这个图形处理库
打开pycharm新建项目 ImageToStr.py
from PIL import Image #引入图形处理包Image类
image_name = 'IMG_20180414_112918.jpg'#获取图片这里图片放入这个项目文件夹中
img = Image.open(image_name)#使用对象读取图片
img = img.convert('L')#图片转换成灰度模式 img.size img.mode img.show()获取图片大小 模式
img.save('图片名称') #保存该转换成灰度模式的图片
w, h = img.size #获取缩放比例的图片
if w > 100:
h = int((100 / w) * h / 2)
w = 100
# 重置图片大小且为防止图片锯齿加一个滤镜
img=img.resize((w,h),Image.ANTIALIAS)
data=[]
# 替换字符的列表
chars=['',',','?','。','.','N','m']
# 根据图片的宽度和高度遍历像素点并取出每个像素点的颜色值
for i in range(0,h):
line=''
for j in range(0,w):
# 获取像素点的值
pi=img.getpixel((j,i))
# 用字符串替换像素点的颜色
for k in range(0,8):
if pi
line += chars[7-k]
break
data.append(line)#把所有数据一次循环存入data中
f=open(image_name+'.txt','w')#以写的方式新建并打开一个文本
for d in data:
print(d,file=f) 循环读取data数据并存入该文档
f.close()
img.show()
_____________________分割线!!!!!!!!!!
还可以对该零零散散的代码重构,把保存和获取字符写成函数然后调用整洁简单并且能重复利用,并且可以加入入口命令。
代码如下
from PIL import Image
def save(image_name,data):
f=open(image_name+'.txt','w')#以写的方式新建并打开一个文本
for d in data:
print(d,file=f) 循环读取data数据并存入该文档
f.close()
def get_chars(pi):
chars=['',',','?','。','.','N','m']
for k in range(0,8):
if pi
return chars[7-k]
if __name__=‘__main__’:
image_name = 'IMG_20180414_112918.jpg'#获取图片这里图片放入这个项目文件夹中
img = Image.open(image_name)#使用对象读取图片
img = img.convert('L')#图片转换成灰度模式 img.size img.mode img.show()获取图片大小 模式
img.save('图片名称') #保存该转换成灰度模式的图片
w, h = img.size #获取缩放比例的图片
if w > 100:
h = int((100 / w) * h / 2)
w = 100
# 重置图片大小且为防止图片锯齿加一个滤镜
img=img.resize((w,h),Image.ANTIALIAS)
data=[]
# 替换字符的列表
# 根据图片的宽度和高度遍历像素点并取出每个像素点的颜色值
for i in range(0,h):
line=''
for j in range(0,w):
# 获取像素点的值
pi=img.getpixel((j,i))
# 用字符串替换像素点的颜色
for k in range(0,8):
if pi
line +=get_chars(pi)
break
data.append(line)#把所有数据一次循环存入data中
save(image_name,data)
酱紫就可以了,哇咔咔!!!
下面看看我处理过的图片效果吧:
是不是很有趣啊,快动手试试吧!!!