先看看效果图:

转换后:

将图片转换成字符画的原理:

先将图片转换成黑白,然后一行行的读取灰度,建立灰度与字符的映射。

转换代码:

  1. def transform(image_file):
  2. image_file = image_file.convert("L")#转换为黑白图片,参数"L"表示黑白模式
  3. codePic = ''
  4. for h in range(0,image_file.size[1]):  #size属性表示图片的分辨率,'0'为横向大小,'1'为纵向
  5. for w in range(0,image_file.size[0]):
  6. gray = image_file.getpixel((w,h)) #返回指定位置的像素,如果所打开的图像是多层次的图片,那这个方法就返回一个元组
  7. codePic = codePic + codeLib[int(((count-1)*gray)/256)]#建立灰度与字符集的映射
  8. codePic = codePic+'\r\n'
  9. return codePic

全部代码如下:

  1. # -*- coding: utf-8 -*-
  2. #闻到 http://wendao123.cn
  3. #利用python生成字符画
  4. from PIL import Image
  5. codeLib = '''@B%8&WM#*oahkbdpqwmasdfghjklzzcvunxrjft/\|()1{}[]?-_+~<>i!lI;:,"'''#生成字符画所需的字符集
  6. count = len(codeLib)
  7. def transform(image_file):
  8. image_file = image_file.convert("L")#转换为黑白图片,参数"L"表示黑白模式
  9. codePic = ''
  10. for h in range(0,image_file.size[1]):  #size属性表示图片的分辨率,'0'为横向大小,'1'为纵向
  11. for w in range(0,image_file.size[0]):
  12. gray = image_file.getpixel((w,h)) #返回指定位置的像素,如果所打开的图像是多层次的图片,那这个方法就返回一个元组
  13. codePic = codePic + codeLib[int(((count-1)*gray)/256)]#建立灰度与字符集的映射
  14. codePic = codePic+'\r\n'
  15. return codePic
  16. fp = open('zfh.jpg','rb')
  17. image_file = Image.open(fp)
  18. image_file=image_file.resize((int(image_file.size[0]*0.25), int(image_file.size[1]*0.125)))#调整图片大小
  19. print(u'Info:',image_file.size[0],' ',image_file.size[1],' ',count)
  20. tmp = open('tmp.txt','w')
  21. tmp.write(transform(image_file))
  22. tmp.close()

代码已经上传到github,传送门:图片转字符画

作者:闻到

个性签名: 海边微风起,等风也等你。

博客地址:http://wendao123.cn

python学习交流群群号:643711776

微信公众号:闻到博客

利用python生成字符画相关推荐

  1. 35行代码利用python生成字符画,非常适合初学者练习,附源码!

    python字符画是一个简单有趣的小程序,非常适合初学者进行学(zhuang)习(bi).python字符画生成的原理及其简单,一句话概括就是----将图片像素点用不同字符代替,从而将像素组成的图片转 ...

  2. python生成字符画_Python生成字符画 | 文艺数学君

    摘要这一篇文章介绍使用Python生成字符画的方式. 会给出简单的原理介绍和实现的方式. 最后会给出源代码的链接地址. 简介 这一篇介绍一下使用Python来进行字符画的生成. 这里会介绍一下生成的步 ...

  3. python生成字符画_使用Python生成ASCII字符画

    使用Python生成ASCII字符画 在很多的网站主页中或者程序的注释中会有一些好看的字符注释画.显得很牛逼的样子 例如: 知乎 _____ _____ _____ _____ /\ \ /\ \ / ...

  4. python生成字符画_python生成动态字符画

    广告关闭 腾讯云11.11云上盛惠 ,精选热门产品助力上云,云服务器首年88元起,买的越多返的越多,最高返5000元! 但,可以将字符串的一部分复制到新创建的字符串,达到"看起来修改&quo ...

  5. python生成字符画_通过python将图片生成字符画

    基础知识: 1.python基础知识 快速学习链接:https://www.shiyanlou.com/courses/214 2.linux命令行操作 快速学习链接:https://www.shiy ...

  6. python表白代码照片墙-python入会生成照片墙 利用python生成照片墙代码

    本篇文章小编给大家分享一下利用python生成照片墙代码,对大家的学习有一定的帮助,小编觉得挺不错的,现在分享给大家供大家参考,有需要的小伙伴们可以来看看. PIL(Python Image Libr ...

  7. 就有趣,Python生成字符视频

    Python生成字符视频 一.前言 在之前也写过生成字符视频的文章,但是使用的是命令行窗口输出,效果不是很好,而且存在卡顿的情况.于是我打算直接生成一个mp4的字符视频.大致思路和之前一样:Pytho ...

  8. 动态照片墙 python 实现_利用python生成照片墙的示例代码

    这篇文章主要介绍了利用python生成照片墙的示例代码,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧 PIL(Python Im ...

  9. python制作图片墙_利用python生成照片墙的示例代码

    PIL(Python Image Library)是python的第三方图像处理库,但是由于其强大的功能与众多的使用人数,几乎已经被认为是python官方图像处理库了.其官方主页为:PIL. PIL历 ...

最新文章

  1. 创业基础(第8章 新企业的创办与管理) 来自高校:全国大学生创新创业实践联盟 分类:创新创业 学习规则:按序学习
  2. php 彩色标签插件,zblog php 彩色标签CSS源码
  3. ios开发-UI基础-应用管理(单纯界面)
  4. 电脑物理内存与虚拟内存的区别与关系
  5. LINUX技术讨论区
  6. 用数学诠释生命——当今生物信息与计算生物学回顾(一)
  7. Python_面向对象_递归
  8. React实践(一)——webpack4搭建开发环境
  9. C# —— 深入理解委托类型
  10. pythonui教学视频_分享软件开发相关视频教程(Java、C++、Python、UI设计、HTML5、iOS)...
  11. ASP.NET MVC3 系列教程 - 部署你的WEB应用到IIS 6.0
  12. 找不到具有不变名称“System.Data.SqlClient”的ADO.NET提供程序的实体框架提供程序
  13. php登录注册案例,php实现登陆与注册的案例
  14. 64位 内存占用大 嵌入式_懵!面试官问我:Object o = new Object() 占用了多少个字节?...
  15. html彻底隐藏源代码禁止抓包,如何彻底禁止查看网页源代码
  16. Jmeter连接测试Mysql数据库
  17. 计算机控制器如何调用打印机,怎样设置打印机的虚拟usb端口
  18. 如何用python爬取下载微博视频_Python通过抓包和使用cookie爬取微博完全讲解(附视频)-阿里云开发者社区...
  19. 库卡机器人emd价格_什么是机器人零点标定?以kuka机器人为例
  20. 格拉姆-施密特过程的程序实现

热门文章

  1. 一键批量关闭 Linux 的 tty 的方法
  2. 超干货!为了让你彻底弄懂MySQL事务日志,我通宵肝出了这份图解
  3. QT 之 TCP 服务端 连接 多客户端 处理学习
  4. 5G无线技术基础自学系列 | 频谱划分
  5. iQOO 8系列高端旗舰手机发布;海信与巴黎圣日耳曼启动第二年合作;爱立信广西移动助推北海精一建设5G智慧工厂 | 全球TMT...
  6. CC00023.elasticsearch——|HadoopElasticSearch.V23|——|ELK.v23|集群|QueryDSL|复合搜索|
  7. oracle 聚合函数 日期,Oracle日期函数/字符函数/数字函数/转换函数/聚合函数
  8. 9个好玩但有点危险的Bash Shell命令
  9. 总结--linux命令总结
  10. python中if else用法详解_Python 中的 else详解