要达到的效果如下图所示

或者这样

源码如下:

from PIL import Image

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

imgname = "D:/jzm.png"

output ="D:/a.txt"

width =60

height=35

def get_char(r,g,b,alpha= 256):

length = len(ascii_char)

gray = int(0.2126 * r + 0.7152 * g + 0.0722 * b)

unitcount = (256.0+1)/length

return ascii_char[int(gray/unitcount)]

img = Image.open(imgname)

img = img.resize((width,height),Image.NEAREST)

txt = ""

for i in range(height):

for j in range(width):

txt += get_char(*img.getpixel((j,i)))

txt += '\n'

with open(output,'w') as f:

f.write(txt)

使用python的PIL库对图片进行处理,将每个像素映射到70个字符上,再一个个像素输出即可

代码注释:

def get_char(r,g,b,alpha= 256):

length = len(ascii_char)

gray = int(0.2126 * r + 0.7152 * g + 0.0722 * b)

unitcount = (256.0+1)/length

return ascii_char[int(gray/unitcount)]

版权声明:本文为博主原创文章,转载请附上博文链接!

将彩色图片的RBG数值转化为灰度值,并根据字符的个数计算出每个字符对应几个灰度值,因为灰度值为0~255但只有70个字符符号,大约每个字符对应三个灰度值

img = img.resize((width,height),Image.NEAREST)

对图片重新设置大小,第二个参数可以设置图片的质量,有四个选项.NEAREST,BILINEAR,BICUBIC,LANCZOS,默认为第一个,第四个图像质量最高

txt += get_char(*img.getpixel((j,i)))

img.getpixel(j,i)返回的是一个三元组元素,加*是为了将其分为三个变量值

---------------------

python图片转字符_二十行python代码实现图片转字符相关推荐

  1. python安装与程序_二、Python安装和第一个程序

    <1.Python语言介绍 1.官方介绍:Python 是一款易于学习且功能强大的编程语言. 它具有高效率的数据结构,能够简单又有效地实现面向对象编程.Python 简洁的语法与动态输入之特性, ...

  2. python画爱心原理_如何理解python一行代码实现一个爱心字符画?

    前言 python中有个很酷的效果,一行代码实现一个爱心字符,虽说是一行代码,但是理解起来还是比较难的,括号太多,并且使用了python的一些快捷小技巧.比如三元表达式,列表生成式,字符串拼接以及一个 ...

  3. python 基础系列(十二) — python正则

    python 基础系列(十二) - python正则 1. 正则表达式基础 1.1. 简单介绍 正则表达式并不是Python的一部分.正则表达式是用于处理字符串的强大工具,拥有自己独特的语法以及一个独 ...

  4. (Python入门)学习笔记二,Python学习路线图

    (Python入门)学习笔记二,Python学习路线图 千里之行始于足下,谋定而后动,冰冻三尺非一日之寒.之所以说这三句话,就是对于下面整理的路线图,即不让自己感觉路途的遥远而感到达到巅峰神界的遥遥无 ...

  5. python逐个读取字符_玩转python之字符串逐个字符或逐词反转

    众所周知,python中的字符串是无法改变的,反转一个字符串自然要创建一个拷贝:最简单的方法,当然是步长为"-1"的切片: result = astring[::-1] 如果要是按 ...

  6. 怎么用python读取excel图_如何用Python读取Excel中图片?

    公众号: 早起Python 作者:刘早起 大家好,在使用Python进行办公自动化操作时,一定少不了与Excel表格的交互,我们通常是用pandas处理表格数据,但大多数情况下,都是读取表格中的数值进 ...

  7. python如何获取图片的尺寸_如何基于Python获取图片的物理尺寸

    如何基于Python获取图片的物理尺寸 这篇文章主要介绍了如何基于Python获取图片的物理尺寸,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 问题 ...

  8. python读取pdf文件_深入学习python解析并读取PDF文件内容的方法

    这篇文章主要学习了python解析并读取PDF文件内容的方法,包括对学习库的应用,python2.7和python3.6中python解析PDF文件内容库的更新,包括对pdfminer库的详细解释和应 ...

  9. python安全编码问题_浅谈Python中的编码问题

    对于Python的初学者来说,编码问题相当令人头疼.本文就根据我在学习过程中遇到的问题简单谈一下Python中的编码.首先简单介绍一下几种常见的编码. 一.几种常见的字符编码 ASCII码 ASCII ...

最新文章

  1. [iOS]调和 pop 手势导致 AVPlayer 播放卡顿
  2. word文档中添加mathtype加载项
  3. RK3288 双屏异显,两屏默认方向不一致
  4. 【知识星球】重要小结与涨价预告
  5. 博鳌论坛国际粮食安全-林裕豪:从玉农业对话丰收节贸易会
  6. 利用Httponly提升web应用程序安全性
  7. 新版微信小程序即将上线 新增微信支付功能
  8. ABAddressBookSave关于保存到通讯录失败的问题
  9. leetcode 278. 第一个错误的版本(Java版)
  10. php常见数据类型转换与判断
  11. px、em、rem区别介绍
  12. rtklib 后处理_RTKLIB 手册解读及代码调试知识总结
  13. grafana入门学习
  14. Datawale编程学习之哈希表和字符串(4)
  15. 一次library cache pin故障的解决过程
  16. 7.分布式服务架构:原理、设计与实战 --- 服务的容器化过程
  17. TASKCTL用户权限如何设置
  18. 最近在准备托福考试,看到一个经验贴,遂,转载
  19. 一个画多个bed文件venn图的好工具
  20. JavaScript实现注册功能

热门文章

  1. 按英语体育计算机创建透视表,数据透视表和数据透视图概述
  2. python的进程和线程_Python进程与线程知识
  3. 泰晤士计算机排名2021,THE2021年世界大学专业排名-计算机
  4. canopy算法流程_Canopy聚类算法(经典,看图就明白)
  5. (软件工程复习核心重点)第八章面向对象方法学-第三节:面向对象建模之对象模型
  6. (软件工程复习核心重点)第九章软件项目管理
  7. 2-2:套接字(Socket)编程之深入了解套接字
  8. Python Numpy 数组的初始化和基本操作
  9. C++11 并发指南六( atomic 类型详解二 std::atomic )
  10. 软件测试要经过哪几个阶段?