美文网首页Python新世界
Python奇技淫巧之将你的女神照片变成字符画!女朋友就答应嘿嘿

Python奇技淫巧之将你的女神照片变成字符画!女朋友就答应嘿嘿

作者: 919b0c54458f | 来源:发表于2018-11-24 15:02 被阅读6次

    这次不写爬虫,来看看如何利用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~

    这才是我的女朋友!

    相关文章

      网友评论

        本文标题:Python奇技淫巧之将你的女神照片变成字符画!女朋友就答应嘿嘿

        本文链接:https://www.haomeiwen.com/subject/tmqyqqtx.html