原标题:代码绘制一直小猪佩奇
今天教大家用python的pillow包来绘制小猪佩奇,python的安装就不用多说了,直接上代码吧
0、首先当然是安装pillow包啦。
关于pillow库的安装有几种方式最常使用的是pip安装$ pip install pillow
2、通过pycharm安装
1、了解一下pillow库的基本使用#导入模块from PIL import Image#读取文件img = Image.open('test.jpg')#保存文件#img.save(filename,format)img.save(filename,"JPEG")img_mode = img.mode#图片模式的转换img = img.convert("L") #转化成灰度图像#获取每个坐标的像素点的RGB值r,g,b = img.getpixel((j,i))#重设图片大小img = img.resize(width,height)#创建缩略图img.thumbnail(size)#获取图片大小(width,height) = img.size#获取图片的源格式img_format = img.format#获取图片模式,有三种模式:L(灰度图像),RGB(真彩色)和CMYK(pre-press图像)
2、开始绘画
首先是要有一张图片喽,准备一一张小猪佩奇的照片:
然后就是放大招是时候了;
(原理简述:就是获取图上每一点的RGB值,然后根据这三种值确定这一点采用什么字符,其实根据RGB来确定的交灰值,所以可以将图片转化成灰度图片,来直接获取每一点的灰度,或者通过灰度的转换公式来使得RGB三值转化成灰度当然了,深度的原理我也不太懂,这里有链接,有兴趣的可以看一下大神们的解释)上代码:
#coding:utf-8
from PIL import Image
#要索引的字符列表
ascii_char = list("$@B%8&WM#*oahkbdpqwmZO0QLCJUYXzcvunxrjft/\|()1{}[]?-_+~<>i!lI;:,\"^`'. ")
length = len(ascii_char)
img = Image.open('timg.jpg') #读取图像文件
(width,height) = img.size
img = img.resize((int(width*0.5),int(height*0.2))) #对图像进行一定缩小,图片的大小可以根据上传图片的大小来按需调节,
print(img.size)
defconvert(img):
img = img.convert("L") # 转为灰度图像
txt = ""
for i in range(img.size[1]):
for j in range(img.size[0]):
gray = img.getpixel((j, i)) # 获取每个坐标像素点的灰度
unit = 256.0 / length
txt += ascii_char[int(gray / unit)] #获取对应坐标的字符值
txt += '\n'
return txt
defconvert1(img):
txt = ""
for i in range(img.size[1]):
for j in range(img.size[0]):
r,g,b = img.getpixel((j, i)) #获取每个坐标像素点的rgb值
gray = int(r * 0.299 + g * 0.587 + b * 0.114) #通过灰度转换公式获取灰度
unit = (256.0+1)/length
txt += ascii_char[int(gray / unit)] # 获取对应坐标的字符值
txt += '\n'
return txt
txt = convert(img)
f = open("03_convert.txt","w")
f.write(txt) #存储到文件中
f.close()
然后上效果图
还是蛮像的嘛,
责任编辑: