文档章节

Python版渣ascii图……

yyliu
 yyliu
发布于 2013/02/22 22:15
字数 101
阅读 255
收藏 0

新成果!

渣实现……


import Image
#import sys

#filename = sys.argv[1]

filename = 'a.jpg'


def i2a(filename):
    """turn an image into ascii"""
    im = Image.open(filename)
    im = im.convert('L')
    im.thumbnail((80, 80))
    string = ''
    for y in range(im.size[1]):
        for x in range(im.size[0]):
            p = im.getpixel((x, y))
            s = '.'
            if p > 200:
                s = '--'
            elif p > 150:
                s = '11'
            elif p > 100:
                s = '88'
            elif p > 50:
                s = 'MM'
            if x % im.size[0] == 0 and y > 0:
                s = s + '\n'
            string = string + s
    return string

ascii = i2a(filename)
with open('a.txt', 'wb') as f:
    f.write(ascii)

© 著作权归作者所有

共有 人打赏支持
下一篇: 碎片
yyliu
粉丝 31
博文 14
码字总数 20045
作品 0
无锡
私信 提问
加载中

评论(9)

Aprocy
Aprocy

引用来自“solu”的评论

引用来自“AproSanae”的评论

引用来自“solu”的评论

引用来自“AproSanae”的评论

引用来自“yyliu”的评论

引用来自“AproSanae”的评论

直接引入类似 p>50这样的magic number不是个太好的习惯,虽然是写着玩……建议用一个小映射去实现~~拙作在此 https://axdiaoqi220.appspot.com/2012/11/8/%E8%AE%B0%E4%BA%8B%E6%9C%AC%E6%92%AD%E6%94%BE%E8%A7%86%E9%A2%91%E5%90%8E%E6%97%A5%E8%B0%88.html

谢谢,原来之前看到的在vim中播放ascii视频的大作原来是您做的: )映射果然好看多了,pic_ascii += pic_string[int(pix[w,h])*(len(pic_string)-1)/255] 我昨天用映射重写了下发了个图代码没发出来,不过相比这简单的一句还是渣实现……

大作什么的还是太那个啥了……恩,其实我也借鉴了不少别人的写法和文章的。简单的一句……只是看着而已,我当时写这句的时候错了好多次,反复retry的结果罢了。

其实我比较在意一次在B站看到的彩色版本

我也是,我觉得很有可能是彩色ascii字符

但是运行方式是记事本的说。LZ这样说
原理
0xe8// 亮度最亮的字符
0x14// 亮度最暗的字符

平均像素 = 亮度最亮的字符 - 亮度最暗的字符 + 1;

红色像素 = (红色的亮度最亮的字符 - 亮度最暗的字符) * 256 /平均像素;
绿色像素 = (绿色的亮度最亮的字符 - 亮度最暗的字符) * 256 /平均像素;
蓝色像素 = (蓝色的亮度最亮的字符 - 亮度最暗的字符) * 256 /平均像素;
其实就是三原色混搭
但是我还没实践过!

原来如此,挺好玩的。我等一阵试写下看看,最近不太有时间……
solu
solu

引用来自“AproSanae”的评论

引用来自“solu”的评论

引用来自“AproSanae”的评论

引用来自“yyliu”的评论

引用来自“AproSanae”的评论

直接引入类似 p>50这样的magic number不是个太好的习惯,虽然是写着玩……建议用一个小映射去实现~~拙作在此 https://axdiaoqi220.appspot.com/2012/11/8/%E8%AE%B0%E4%BA%8B%E6%9C%AC%E6%92%AD%E6%94%BE%E8%A7%86%E9%A2%91%E5%90%8E%E6%97%A5%E8%B0%88.html

谢谢,原来之前看到的在vim中播放ascii视频的大作原来是您做的: )映射果然好看多了,pic_ascii += pic_string[int(pix[w,h])*(len(pic_string)-1)/255] 我昨天用映射重写了下发了个图代码没发出来,不过相比这简单的一句还是渣实现……

大作什么的还是太那个啥了……恩,其实我也借鉴了不少别人的写法和文章的。简单的一句……只是看着而已,我当时写这句的时候错了好多次,反复retry的结果罢了。

其实我比较在意一次在B站看到的彩色版本

我也是,我觉得很有可能是彩色ascii字符

但是运行方式是记事本的说。LZ这样说
原理
0xe8// 亮度最亮的字符
0x14// 亮度最暗的字符

平均像素 = 亮度最亮的字符 - 亮度最暗的字符 + 1;

红色像素 = (红色的亮度最亮的字符 - 亮度最暗的字符) * 256 /平均像素;
绿色像素 = (绿色的亮度最亮的字符 - 亮度最暗的字符) * 256 /平均像素;
蓝色像素 = (蓝色的亮度最亮的字符 - 亮度最暗的字符) * 256 /平均像素;
其实就是三原色混搭
但是我还没实践过!
Aprocy
Aprocy

引用来自“solu”的评论

引用来自“AproSanae”的评论

引用来自“yyliu”的评论

引用来自“AproSanae”的评论

直接引入类似 p>50这样的magic number不是个太好的习惯,虽然是写着玩……建议用一个小映射去实现~~拙作在此 https://axdiaoqi220.appspot.com/2012/11/8/%E8%AE%B0%E4%BA%8B%E6%9C%AC%E6%92%AD%E6%94%BE%E8%A7%86%E9%A2%91%E5%90%8E%E6%97%A5%E8%B0%88.html

谢谢,原来之前看到的在vim中播放ascii视频的大作原来是您做的: )映射果然好看多了,pic_ascii += pic_string[int(pix[w,h])*(len(pic_string)-1)/255] 我昨天用映射重写了下发了个图代码没发出来,不过相比这简单的一句还是渣实现……

大作什么的还是太那个啥了……恩,其实我也借鉴了不少别人的写法和文章的。简单的一句……只是看着而已,我当时写这句的时候错了好多次,反复retry的结果罢了。

其实我比较在意一次在B站看到的彩色版本

我也是,我觉得很有可能是彩色ascii字符
solu
solu

引用来自“AproSanae”的评论

引用来自“yyliu”的评论

引用来自“AproSanae”的评论

直接引入类似 p>50这样的magic number不是个太好的习惯,虽然是写着玩……建议用一个小映射去实现~~拙作在此 https://axdiaoqi220.appspot.com/2012/11/8/%E8%AE%B0%E4%BA%8B%E6%9C%AC%E6%92%AD%E6%94%BE%E8%A7%86%E9%A2%91%E5%90%8E%E6%97%A5%E8%B0%88.html

谢谢,原来之前看到的在vim中播放ascii视频的大作原来是您做的: )映射果然好看多了,pic_ascii += pic_string[int(pix[w,h])*(len(pic_string)-1)/255] 我昨天用映射重写了下发了个图代码没发出来,不过相比这简单的一句还是渣实现……

大作什么的还是太那个啥了……恩,其实我也借鉴了不少别人的写法和文章的。简单的一句……只是看着而已,我当时写这句的时候错了好多次,反复retry的结果罢了。

其实我比较在意一次在B站看到的彩色版本
yyliu
yyliu

引用来自“AproSanae”的评论

引用来自“yyliu”的评论

引用来自“AproSanae”的评论

直接引入类似 p>50这样的magic number不是个太好的习惯,虽然是写着玩……建议用一个小映射去实现~~拙作在此 https://axdiaoqi220.appspot.com/2012/11/8/%E8%AE%B0%E4%BA%8B%E6%9C%AC%E6%92%AD%E6%94%BE%E8%A7%86%E9%A2%91%E5%90%8E%E6%97%A5%E8%B0%88.html

谢谢,原来之前看到的在vim中播放ascii视频的大作原来是您做的: )映射果然好看多了,pic_ascii += pic_string[int(pix[w,h])*(len(pic_string)-1)/255] 我昨天用映射重写了下发了个图代码没发出来,不过相比这简单的一句还是渣实现……

大作什么的还是太那个啥了……恩,其实我也借鉴了不少别人的写法和文章的。简单的一句……只是看着而已,我当时写这句的时候错了好多次,反复retry的结果罢了。

额……很厉害了,vim党路过……
Aprocy
Aprocy

引用来自“yyliu”的评论

引用来自“AproSanae”的评论

直接引入类似 p>50这样的magic number不是个太好的习惯,虽然是写着玩……建议用一个小映射去实现~~拙作在此 https://axdiaoqi220.appspot.com/2012/11/8/%E8%AE%B0%E4%BA%8B%E6%9C%AC%E6%92%AD%E6%94%BE%E8%A7%86%E9%A2%91%E5%90%8E%E6%97%A5%E8%B0%88.html

谢谢,原来之前看到的在vim中播放ascii视频的大作原来是您做的: )映射果然好看多了,pic_ascii += pic_string[int(pix[w,h])*(len(pic_string)-1)/255] 我昨天用映射重写了下发了个图代码没发出来,不过相比这简单的一句还是渣实现……

大作什么的还是太那个啥了……恩,其实我也借鉴了不少别人的写法和文章的。简单的一句……只是看着而已,我当时写这句的时候错了好多次,反复retry的结果罢了。
yyliu
yyliu

引用来自“AproSanae”的评论

直接引入类似 p>50这样的magic number不是个太好的习惯,虽然是写着玩……建议用一个小映射去实现~~拙作在此 https://axdiaoqi220.appspot.com/2012/11/8/%E8%AE%B0%E4%BA%8B%E6%9C%AC%E6%92%AD%E6%94%BE%E8%A7%86%E9%A2%91%E5%90%8E%E6%97%A5%E8%B0%88.html

谢谢,原来之前看到的在vim中播放ascii视频的大作原来是您做的: )映射果然好看多了,pic_ascii += pic_string[int(pix[w,h])*(len(pic_string)-1)/255] 我昨天用映射重写了下发了个图代码没发出来,不过相比这简单的一句还是渣实现……
Aprocy
Aprocy
顺便,我也是教主脑残粉……
Aprocy
Aprocy
直接引入类似 p>50这样的magic number不是个太好的习惯,虽然是写着玩……建议用一个小映射去实现~~拙作在此 https://axdiaoqi220.appspot.com/2012/11/8/%E8%AE%B0%E4%BA%8B%E6%9C%AC%E6%92%AD%E6%94%BE%E8%A7%86%E9%A2%91%E5%90%8E%E6%97%A5%E8%B0%88.html
Java版GA_TSP(我的第一个Java程序)

  嗯哼,第一次写博客,准确说是第一次通过文字的方式记录自己的工作,闲话少叙,技术汪的博客就该直奔技术主题(关于排版问题,会在不断写博客的过程中慢慢学习,先将就着用吧,重在技术嘛...

AlexIsMe
2018/08/11
0
0
关于Python报错:SyntaxError: Non-ASCII character '\xe5' in file的解决方法

现象:最近需要抓取一些网页的信息,但发现Python的乱码问题相对Java来说,不太一样。按照以往Java解决中文乱码问题的思路去解决Python乱码,貌似行不通,报错信息: SyntaxError: Non-ASCII...

xyxo
2013/07/05
0
1
python制作galgame引擎(EX)

来来来,最后一点东西。扯完了这个系列就暂时结束了,然后我就可以滚去再次开始憋代码……当有了比较大的更新或者长了比较大的姿势的时候,这个系列还会更新。极有可能的是,前几篇讨论的东西...

Aprocy
2013/01/29
0
4
ImportError: No module named psutil的解决

系统版本: cat /etc/redhat-release CentOS release 6.9 (Final) 跑python脚本的时候报错ImportError: No module named psutil,于是想要用pip来安装,但是发现pip也没装: # pip install ...

emma_cql
2018/06/09
0
0
人人都能学会的python编程教程3:字符串和编码

字符串 在python3中已经全面支持中文。 由于Python源代码也是一个文本文件,所以,当你的源代码中包含中文的时候,在保存源代码时,就需要务必指定保存为UTF-8编码。当Python解释器读取源代码...

编程老司机
2018/05/10
0
0

没有更多内容

加载失败,请刷新页面

加载更多

如何开发一款以太坊(安卓)钱包系列2 - 导入账号及账号管理

这是如何开发一款以太坊(安卓)钱包系列第2篇,如何导入账号。有时用户可能已经有一个账号,这篇文章接来介绍下,如何实现导入用户已经存在的账号。 导入账号预备知识 从用户需求上来讲,导...

Tiny熊
今天
2
0
intellJ IDEA搭建java+selenium自动化环境(maven,selenium,testng)

1.安装jdk1.8; 2.安装intellJ; 3.安装maven; 3.1 如果是单前用户,配置用户环境变量即可,如果是多用户,则需配置系统环境变量,变量名为MAVEN_HOME,赋值D:\Application\maven,往path中...

不最醉不龟归
今天
4
0
聊聊ShenandoahGC的Brooks Pointers

序 本文主要研究一下ShenandoahGC的Brooks Pointers Shenandoah Shenandoah面向low-pause-time的垃圾收集器,它的GC cycle主要有 Snapshot-at-the-beginning concurrent mark包括Init Mark(P......

go4it
昨天
4
0
Makefile通用编写规则

#简单实用的Makefile模板: objs := a.o b.o test:$(objs) gcc -o test $^ # .a.o.d .b.o.d dep_files := $(foreach f,$(objs),.$(f).d) dep_files := $(wildcard $(dep_files)) ifneq ($(d......

shzwork
昨天
3
0
《万历十五年》的读后感作文4000字

《万历十五年》的读后感作文4000字: 万历十五年,即1587年,距今已过去432年。在明朝276的历史中,这一年很平淡,并没有什么特别之处。黄仁宇的《万历十五年》一书,有别于其他的历史叙述方...

原创小博客
昨天
2
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部