Python奇技淫巧之将你的女神照片变成字符画!女朋友就答应嘿嘿
这次不写爬虫,来看看如何利用Python强大的图像处理库将女神照片转换成字符画。下面有请重量级女神如花登场: 那清秀的面庞,水灵的双眸,俏皮的双马尾,粉扑扑的发卡,性感的胡须还有略带羞意的抠鼻动作,满足了童年的我对美的无线遐想。就连背后的群演大妈也忍不住捂住口掩饰自己惊讶的表情,可见我的女神简直美的不可方物,美的一言难尽,美的惨绝人寰! 转换成字符画之后大概长这样: 进群:548377875? 即可获取精心准备的教程以及PDF呢!需要源码后台私信小编哦! 怎么样,依然是棱角分明,含情脉脉,微启朱唇,千柔百媚,足以让六宫粉黛黯然失色! 那么如何完成这样惟妙惟肖的妙笔丹青呢?用Python简单到让人发指,不到20行代码。思路大致如下,先使用Pillow库读取图片。此处需要注意,使用pip install pillow命令安装pillow库,但是在使用的时候却是从PIL库导入相关模块。因为pillow库是PIL(Python Image Library)的分支,相对于PIL更新较为及时,兼容Python3,是图像处理的不二之选。读取完成图片之后需要将图片转换成灰度模式,灰度模式的图色彩较为单一,容易处理。由于图像是由一个个的像素点组成的,可以把它们看成一个个的小格子,里面填充了色块,利用pillow库,可以获取某个指定的坐标处的灰度值。灰度值在0-255之间,越接近于0颜色就越暗,越接近于255颜色就越亮。由此我们可以定义一串字符串,越靠前字符笔画越复杂例如@、#、¥等,当这样一大堆字符拼接在一起时,从远处看,颜色就越暗,越靠后的字符笔画越简单例如=、+、-等,当这样一大堆字符拼接在一起时,从远处看,颜色就越亮。我们将指定坐标处的像素根据其灰度值替换成相对应的字符,然后拼接起来,写入一个txt文档,将相当于使用字符临摹了这张图片。 完整代码如下: 1""" 2@author: Kevin Wong 3@function: 使用pillow模块将图片转换成字符画 4@time: 2018/11/04 13:54 5""" 6from PIL import Image 7# 读取图片 8img = Image.open("./ruhua.jpg") 9# 将图片转换成灰度模式 10conv_img = img.convert("L") 11# 获取原图的宽高 12width,height = conv_img.size 13# 设置垂直比例系数 14vscale = 0.5 15# 将图片等比例缩小为原来的四分之一大小 16conv_img = conv_img.resize((int(width * 0.25),int(height * 0.25 * vscale))) 17# 获取缩小之后的图片的宽高 18width,height = conv_img.size 19# 定义一个字符串 字符笔画由复杂到简单 20chars = "@&$%#*+=-. " 21chars_drawing = "" 22for row in range(height): 23 for col in range(width): 24 # 获取图片当前位置的像素灰度值 25 gray = conv_img.getpixel((col,row)) 26 # 使用定义好的字符替换相应的灰度值处的图像 27 chars_drawing += chars[int(gray / 255 *10)] 28 chars_drawing += ' ' 29with open("./ruhua.txt",'w') as f: 30 f.write(chars_drawing) 完结,撒花,ye~ 这才是我的女朋友! (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |