本文给大家讲解通过pillow-PIL库当中的Image模块来实现如下图的图像转字符画效果,有没有觉得这简陋的字符看起来很有编程的高级感呢,那就让我们开始吧!!!输出效果原图

图片选自我的idol周杰伦的写真,大家如果需要可自行下载

首先第一步我们需要安装环境也就是我们要用到的第三方库,python强大的第三方库大家一定要懂得如何安装,我们直接pip进行安装pillow-PIL装好这个库也就有我们后面要用的Image模块了 具体的安装教程我会在其他文章当中进行详细讲解。

1,装好以后我们进行导入Image

2,导入后我们首先来定义设计方法来进行灰度值转换和字符映射(以下字符列表可自行复制)

char_list = list("$@B%8$@B%8&W$@B%8&WM#*oahkbdpqwmZO0QLCJUYXzcvunxrjft/\|()1{}[]?-_+~<>i!lI;:,\"^`'. ^`'. ^`'. ^`'. ")

3,定义好方法后我们进行图片的读取和降低品质及尺寸

循环遍历其每个像素的rgb值并传入刚刚定义好的方法之中,拿到映射好的字符进行本地文件的写入

完整代码:

import Image

# 1设计方法来进行灰度值转换和字符映射的方法,

#灰度值转换是通过rgb计算而来的,所以形参当中要具备rgb a代表透明

def getchar(r,g,b,a=0):

if a==0:

return " "

#2,定义列表来进行字符的设计 :规律:越往后占黑比越低 从左到右越来越稀疏

# 因为咱们的灰度值是0~255之间的值0代表没有(黑)255代表满(白)

char_list = list("$@B%8$@B%8&W$@B%8&WM#*oahkbdpqwmZO0QLCJUYXzcvunxrjft/\|()1{}[]?-_+~<>i!lI;:,\"^`'. ^`'. ^`'. ^`'. ")

#3 进行灰度值的一个计算 值从0~255

gray=0.2126*r+0.7152*g+0.0722*b

#4,因为灰度值最多为256个,字符只有70进行下标获取

index=int(gray/256*len(char_list))

# 5,返回映射到的字符

return char_list[index]

if __name__ == '__main__':

#6,打开一张图片

im=Image.open("zjl.png")

# 7,修改图片的大小

WIDTH=200

HEIGHT=100

# 降低画面质量

im=im.resize((WIDTH,HEIGHT),Image.NEAREST)

# 定义空变量进行字符画接受

text=""

# 8 像素的提取和映射字符的调用

for y in range(HEIGHT):

for x in range(WIDTH):

# 拿到像素点的rgb

pixel = im.getpixel((x, y))

# 调用定义好的方法进行映射和累加

text+=getchar(*pixel)

#记得每一行打印完了要换行

text+="\n"

print(text)

with open("周杰伦.txt","w",encoding="utf-8") as file:

file.write(text)

运行后我们会拿到一个txt文件

我们在磁盘当中找到它并右键打开大家可以把记事本工具的字体调到最小看效果

就像这样!由此则大功告成!!!

python生成中文字符画_python制作字符画相关推荐

  1. Python生成中文词云图(二):不可指定词云特定的形状和颜色。

    Python生成中文词云图(二):不可指定词云特定的形状和颜色. 什么是词云? 首先,什么是词云呢?词云又叫文字云,是对文本数据中出现频率较高的"关键词"在视觉上的突出呈现,形成关 ...

  2. Python生成中文词云图(一):可指定特定的词云形状和颜色。

    Python生成中文词云图 什么是词云? 首先,什么是词云呢?词云又叫文字云,是对文本数据中出现频率较高的"关键词"在视觉上的突出呈现,形成关键词的渲染形成类似云一样的彩色图片,从 ...

  3. python生成中文字符画_Python 图片转字符画

    -- coding:utf-8 -- from PIL import Image import argparse 命令行输入参数处理 parser = argparse.ArgumentParser( ...

  4. python输出中文加数字_python处理“#”开头加数字的html字符方法

    python如何处理""开头加数字的html字符,比如:风水这类数据. 用python抓取数据时,有时会遇到想要数据是以""开头加数字的字符,比如图中所示的这些 ...

  5. python图像转字符画_python图像处理-字符画风格图片

    前言 字符画图片,顾名思义就是由一个个字符组成的图片,下面这张图片很容易帮助你理解,如果我们可以将字符排列好,让他看上去像一个物体的形状,那么最后再将它输出保存为一张图片就可以实现了. 下面的这些形状 ...

  6. python统计字符串汉字个数_python统计字符个数

    python统计字符个数 Python count()方法 描述 Python count() 方法用于统计字符串里某个字符出现的次数.可选参数为在字符串搜索的开始与结束位置. 语法 count()方 ...

  7. python生成中文词云的代码_[python] 基于词云的关键词提取:wordcloud的使用、源码分析、中文词云生成和代码重写...

    1. 词云简介 词云,又称文字云.标签云,是对文本数据中出现频率较高的"关键词"在视觉上的突出呈现,形成关键词的渲染形成类似云一样的彩色图片,从而一眼就可以领略文本数据的主要表达意 ...

  8. 生成中文词云图的制作:带有不同的背板

    简 介: 使用Python中的响应软件软件包制作应用与中文的词云图片.使用jieba用于中文词语划分.文中对于程序的背景图片以及不同的字体所确定的词云的表现进行了测试. 关键词: 词云,字体,背景 # ...

  9. python生成随机数random操作_Python random生成随机数示例

    代码中经常有一些生成随机数的需求.特意整理了一下Python中random模块的一些相关使用方法示例. python生成随机数 随机整数: >>> import random > ...

  10. python生成xml文件工具_Python根据指定文件生成XML的方法

    因项目需要根据指定格式的文件生成XML标注文件,可以方便使用LabelImg打开进行编辑和查看.其原始文件默认使用逗号进行分隔,如下所示: 第1个值:原始图片中切图小文件,以AIpng_x,其中x代表 ...

最新文章

  1. yum安装mysql
  2. 【IT笔试面试题整理】堆栈和队列
  3. 她是如何从传统金融行业转行产品经理的?
  4. 【AI视野·今日CV 计算机视觉论文速览 第239期】Wed, 3 Nov 2021
  5. slf4j注解log报错_这个注解一次搞定限流与熔断降级:@SentinelResource
  6. 通过shell访问hive_Spark入门:连接Hive读写数据(DataFrame)
  7. oracle中decode函数,行转列
  8. linux 软件装哪个目录下,Linux查看软件安装目录及位置 方法
  9. Tomcat的下载与安装
  10. 《数据挖掘概念与技术》第三版 范明 孟小峰译 课后习题答案(二)
  11. MT6762/MT6763处理器参数比较,MT6762参考设计资料介绍
  12. Java —— 连接邮箱,读取收件箱中的邮件
  13. [Redis]Redis客户端
  14. 《统计学习方法》(李航)的学习体会(一)
  15. 拆解大数据总线平台DBus的系统架构
  16. python键盘记录工具开发_多功能Python键盘记录工具:Radium
  17. 专业查苹果测试软件,电池寿命检测软件苹果版-iphone查电池寿命appv2.1.5 iOS版-腾牛苹果网...
  18. WordPress主题_大前端DUX主题7.1原版+优化-91apps.cn就要应用网
  19. 恋与制作人 服务器错误,恋与制作人登陆不了怎么办 登录失败无法登录DNS劫持全解析...
  20. Ajax之【Ajax异步实现步骤】

热门文章

  1. 坠落弹球(Bouncing off the walls)
  2. git 删除历史commit
  3. ffmpeg生成缩略图
  4. webstorm 2017 激活破解方法大全
  5. 17年App Store最新官方审核指南
  6. 80c51单片机c语言程序,80C51单片机电子钟程序
  7. 攻防世界-web-mfw
  8. VUE+ElementUI实现div滚动条替换
  9. 【R语言数据科学】(十二):有趣的概率学(上)
  10. Please, configure Web Facet first!的解决办法