简单使用python将图片转换为字符画
将图片转换为字符码的形式相信大家都有见过。
记得小编以前看到这些的时候是极其羡慕的,也很渴望能够实现这项功能。
然后将一副画转换为这样的字符画,发给周围的朋友炫耀。
NH HN–: !;;– –;;;O ?––NNHH ;;;7 :;;;;;;–NN: –;;;;;;–;;;–;;;;;;;;? –;;;;;;;;;;;;:? . >;;;;;;;;;;–;;;– :;H.:;;––;;ONH–– ;––C –;;;;;;–;–;;;;;–––;;> C:;;>. ??–;;–$OOOQ;;–???;;;. >–;;;;––:;;;;:777;;;;::–;–! ;;–––;–;;;;;;;;;7 :–;;;;;7;;;––>;;;;?;;;–! ;!–;;;;;;;;;;;– C!!>–;;;–!!!!–;;;;;:! 7!!!!!!;;;;;;;; .; C;;;;;;;;;;;;;;–!! !!!!!!!!!!!;–; !:C;;;;;;;;;;;;;;;;;; OO >!!! >!$!!!–;;;;;;;;;;;;;– !!!!!!! !$!!!!!!;;;;;;;;;;;; O$O ;> ?!!!!!!;;;;;;;;;;$$O$$ !!!:;;;;;;;;;O C!;;;;;;;; !!–;;;;;– .!!!> !!O ;C O
python帮助我完成了这项个功能。
只需要40行代码便可以轻松的实现,通过python将图片转换为字符画。
以下是具体代码:
#-*- coding:utf-8 -*-
from PIL import Image
import argparse
#命令行输入参数处理
parser = argparse.ArgumentParser()
parser.add_argument('file')
parser.add_argument('-o','--output')
#获取参数
args = parser.parse_args()
File = args.file#ascii_char = list("$@B%8&WM#*oahkbdpqwmZO0QLCJUYXzcvunxrjft/\|()1{}[]?-_+~<>i!lI;:,\"^`'. ")
ascii_char = list("MNHQ$OC?7>!:–;. ")#将像素转换为ascii码
def get_char(r,g,b,alpha = 256):if alpha == 0: #alpha=0,表示透明于是用‘’填充return ''length = len(ascii_char)gray = int(0.2126 * r + 0.7152 * g + 0.0722 * b)#装换为灰度unit = (256.0+1)/lengthreturn ascii_char[int(gray/unit)] #将像素颜色映射为对应的ascii码if __name__=='__main__':im = Image.open(File)#打开图片文件WIDTH = int(im.width/6)HEIGHT = int(im.height/15)im = im.resize((WIDTH,HEIGHT),Image.NEAREST)#以低质量调整图片,使效果更明显txt = ""for i in range(HEIGHT):for j in range(WIDTH):pixel = im.getpixel((j,i))#获取像素点颜色信息,RGBA或者RGBif(len(pixel) == 4):txt += get_char(pixel[0],pixel[1],pixel[2],pixel[3])#为适应python3与python2之间的小改动else:txt += get_char(pixel[0],pixel[1],pixel[2]) txt += '\n'print(txt)with open('output-test.txt','w') as f:#输出文件f.write(txt)
其实上述的编程思想很简单,只需要掌握步骤,你也可以轻松的实现以上功能,大体思想如下:
其中如果你想更改ascii的效果,有两种选择:
1、更改 gray = int(0.2126 * r + 0.7152 * g + 0.0722 * b)——灰度转换公式
2、更改 ascii_char = list(“MNHQ$OC?7>!:–;. “)——映射用的ascii码,对应的颜色从左往右分别时从深到浅。
以上代码使用后你会发现一个问题,它只可以转换静态图,如png,jpg,jpeg等,但是无法转换gif这类动态图。
下篇文章,我将教大家如何将gif图也同样的转换为字符画。
以上代码使用后你会发现一个问题,它只可以转换文本文件,那么是否有什么方法可以帮助我们将装换后的字符画以图像的形式输出呢,同时使字符画带有颜色。
下篇文章,我将教大家如何将输出的文本文件转换为彩色的字符画图片。
喜欢的话,不要忘了点击关注!
简单使用python将图片转换为字符画相关推荐
- Python将图片转换为字符画
最近在学习Python,看到网上用Python将图片转换成字符画便来学习一下 题目意思是,程序读入一个图片,以txt格式输出图片对应的字符画,如图所示: 以下是Python代码: # coding:u ...
- python将图片转换为字符_python如何将图片转换为字符图片
简介 一个简单的python程序,将图片转换为字符图片. (为了简便,很多参数写死了,自己看着改吧. (←∀←)) 正文 原图(侵删) 结果图 源码 [更多细节]-->戳这里 #-*- codi ...
- 怎样用python生成中文字符画_如何利用Python实现图片转字符画详解
本篇文章主要介绍了Python实现图片转字符画的示例,小编觉得挺不错的,现在分享给大家,也给大家做个参考.一起跟随小编过来看看吧 字符画真的很有意思,将图片中的像素用字符代替,就生成了字符画. 但是像 ...
- python笔记手写照片_Python笔记-将图片转换为字符画
[功能] 将jpg图片转换为字母画字符画( python 3.7版本下调试成功) [特点] 1.图片可默认位置,或者手工输入指定图片名 2.输出字符画高度可以设置,默认为60行 图片转字符画程序.jp ...
- python动态图片转字符画_GIF动态图,视频?都能用Python转换成字符画图像
字符画是一种由字母.标点或其他字符组成的图画,它产生于互联网时代,在聊天软件中使用较多,本文我们看一下如何将自己喜欢的图片转成字符画. 静态图片 首先,我们来演示将静态图片转为字符画,功能实现主要用到 ...
- so easy,用 Python 实现图片转字符画
相信大家在网上经常看到有人秀出各种各样的字符画,对于这个五彩斑斓的世界来说,我们日常看到的都是一些高清的彩色的图片,偶尔来个粗糙的黑白的字符画,还是比较解乏的.喜欢记得收藏.关注.点赞. 注:文末提供 ...
- 用 Python 实现图片转字符画,so easy!
作者 | 派森酱 来源 | Python技术 相信大家在网上经常看到有人秀出各种各样的字符画,对于这个五彩斑斓的世界来说,我们日常看到的都是一些高清的彩色的图片,偶尔来个粗糙的黑白的字符画,还是比较解 ...
- Python 实现 图片转 字符画,静态图、GIF 都能转
源码在python学习交流q群:733089476 获取 字符画是一种由字母.标点或其他字符组成的图画,它产生于互联网时代,在聊天软件中使用较多,本文我们看一下如何将自己喜欢的图片转成字符画. 静态图 ...
- python实现图片转字符画_Python实现图片转字符画的示例代码
初学Python,在网上看到Python图片转字符画的教程,我也来尝试下. 首先我们要用到Python的PIL库的Image模块,PIL(Python Imaging Library)库是Python ...
最新文章
- ORA-01502:索引或这类索引的分区处于不可用状态 的解决方法
- 图形学实验之显示一个飞机(C++实现)
- Android Studio Library 模块中 Native 代码进行 debug 的一些坑
- 有哪些命令行工具堪称神器?
- 《软技能:代码之外的生存指南》一一21.3 打造成功博客的秘诀
- 将XML文件数据插入到数据库中
- 编程题目:PAT 1006. 换个格式输出整数 (15)
- OpenCV之图像二值化与去噪
- QDateTime 和tm 的时间显示
- .NET在蹉跎中一路前行1
- ASP.NET Core 导出Excel文件
- 静态pc端页面,你一定用得上的技巧
- 美国佐治亚大学计算机专业,美国计算机专业大学排名TOP10
- android 是否插入耳机,Android监听耳机是否插入
- 【户外之上,磨房之下系列】20190829强烈要求做单的依梅同学
- lattice,flat
- jQuery权威指南(第2版)pdf
- 探讨mos管串并联分裂问题
- 怎么爱护眼睛保护视力?补充光照的护眼台灯
- 基于java的售后服务管理系统