从零学python系列之教你如何根据图片生成字符画

yipeiwu_com5年前Python基础

说下思路吧:

原图->灰度->根据像素亮度-映射到指定的字符序列中->输出。
字符越多,字符变化稠密。效果会更好。
如果根据灰度图的像素亮度范围制作字符画,效果会更好。
如果再使用调色板,对字符进行改色,就更像原图了。

这是原图: 

这是生成的字符画:

废话不多说,直接上代码:

复制代码 代码如下:

import Image
chars =" ...',;:clodxkLO0DGEKNWMM"
fn=r'c:\users\liabc\desktop\jianbing.png'
f1=lambda F:''.join([(k%100!=0) and m or m+'\n' for k,m in enumerate(apply(lambda x:[chars[x[j,i]%len(chars)] for i in xrange(70) for j in xrange(100)],(Image.open(F).resize((100,70)).convert("L").load(),)),1)])
 f=open(r"c:\users\liabc\desktop\aface.txt","w")
f.write(f1(fn))
f.close()

相关文章

解决PyCharm的Python.exe已经停止工作的问题

今天遇到一个问题,就是用pycharm运行python程序,老是会出现Python.exe已停止的对话框。后来我到处在网上搜原因,网上给出的解决办法也有很多种。最终帮我解决问题的就是:打...

一篇文章了解Python中常见的序列化操作

0x00 marshal marshal使用的是与Python语言相关但与机器无关的二进制来读写Python对象的。这种二进制的格式也跟Python语言的版本相关,marshal序列化...

python中dict()的高级用法实现

python中dict()的高级用法实现

collections中defaultdict的用法 一、字典的键映射多个值 将下面的列表转换成字典 一个字典就是一个键对应一个单值得映射,而上面的列表中有相同的键,如果你想要一个键映...

tensorflow更改变量的值实例

如下所示: from __future__ import print_function,division import tensorflow as tf #create a Var...

Python使用Pandas对csv文件进行数据处理的方法

Python使用Pandas对csv文件进行数据处理的方法

今天接到一个新的任务,要对一个140多M的csv文件进行数据处理,总共有170多万行,尝试了导入本地的MySQL数据库进行查询,结果用Navicat导入直接卡死....估计是XAMPP套...