不知道大家有没有学过tkinter模块。我写的这个小代码其中有一点tkinter模块的内容。
没关系 我改写没有tkinter模块的内容。
首先说下pillow是python的图像函数库,我们可以用来处理很多格式的函数。功能比tkinter模块的BitmapImage与photoImage类要强很多。
下载安装pillow
pillow函数库并没有附在python3的版本中,所以我们要进行下载安装
下载网址
https://pypi.org/project/Pillow/#files
这是我的 找到大家适用的版本
pillow下载后双击安装文件(和安装平时的软件差不多)有一点是第二步要选择安装python的文件夹,一般可以自己识别。
然后还有一种方法个人比较喜欢。
方法二:
首先进入cmd
输入 pip install pillow
安装完成就可以使用了
加载图片
image 模块的open函数
例如:
show()函数是显示该图片
image模块的open函数打开的图像还有很多的属性
如:
size
还有一些:format 图像的格式
mode 图像文件的色彩表示模式(RGB、P等)
palette 图像文件的color palette table
info 图像文件的字典集
还有一些Image模块的常用函数
如复制(copy())粘贴(paste())
还有图片的几何转换
- resize()改变图像大小resize(width,height)
- 旋转图像 rotate(angle)
- 颠倒图像transpose(method)
method可以是:FILP_LEFT_RIGTH、FILE_TOP_BUTTOM、TOTATE_90、ROTATE_180、ROTATE_270。
存储图像文件
函数:save(outfile [,options])
如:
from PIL import Image
im = Image.open(“地址”)
im.save(“保存地址”,“BMP”)#BMP 为后缀名。
实战项目
读取一个图片然后将其转化为字符串图片
这个项目网上有一个视频我记得讲的挺好的
本来我写的是带tkinter模块的现在我重写一下 把该部分去掉
from PIL import Image
ascii_char = list("$@B%8&WM#*oahkbdpqwmZO0QLCJUYXzcvunxrjft/|()1{}[]?-_+~<>i!lI;:,"^`’. ")
WIDTH = 60
HEIGHT = 60
#根据图片的rgb 值返回字符串
def getChar(r,g,b,alpha=256):
if alpha == 0: #表示透明
return " "
length = len(ascii_char)
#由于符号少 灰度值有266 所以需要进行处理一下
gray = int(0.2126*r + 0.7152 *g + 0.0722 * b)
unit = (256.0 + 1)/length
return ascii_char[int(gray/unit)]
if __name __ == “__main __”:#空格大家去掉
im = Image.open("D:/ascii_dora.png")
print(im.size)
im = im.resize((WIDTH,HEIGHT))#重置大小
txt=""
for i in range(WIDTH):
for j in range(HEIGHT):
txt+= getChar(*im.getpixel((j,i)))
'''
getpixel(元组) 会根据像素的坐标返回他们的RGB值为一个元组
大家可以输出一下
'''
txt +="\n"#进行换行
print(txt)
fu = open("D:/123.txt",'r+')#保存到这里
fu.seek(0,0)#定位光标为0,0位置
fu.write(txt)
fu.close()
运行结果为
没有截完
写入文件
这个图片也给大家
代码很简单但是却很有意思大家可以多进行研究一下