Change image into character

from PIL import Image
import argparse #输入
#命令行输入参数处理
parser = argparse.ArgumentParser() parser.add_argument('file') #position argument
parser.add_argument('-o','--output') #optional argument and -o is a short option
parser.add_argument('--width', type = int, default = 80) #optional argument
parser.add_argument('--height', type = int, default = 80) #获取参数
args = parser.parse_args() IMG = args.file
WIDTH = args.width
HEIGHT = args.height
OUTPUT = args.output ascii_char = list("$@B%8&WM#*oahkbdpqwmZO0QLCJUYXzcvunxrjft/\|()1{}[]?-_+~<>i!lI;:,\"^`'. ") #处理
#构建映射
def get_char(r,g,b, alpha = 256):
if alpha == 0:
return ''
length = len(ascii_char)
gray = int(0.2126 * r + 0.7152 * g + 0.0722 * b) unit = (256.0+1)/length
return ascii_char[int(gray/unit)] #输出
if __name__ == '__main__':
#When the Python interpreter reads a source file, it executes all of the code found in it.
#in main program, __name__ = __main__
im = Image.open(IMG)
im = im.resize((WIDTH,HEIGHT), Image.NEAREST)
#Image.resize(size, resample=0)
#Parameters:
#size – The requested size in pixels, as a 2-tuple: (width, height).
#resample – An optional resampling filter. This can be one of PIL.Image.NEAREST (use nearest neighbour), PIL.Image.BILINEAR (linear interpolation), PIL.Image.BICUBIC (cubic spline interpolation), or PIL.Image.LANCZOS (a high-quality downsampling filter). If omitted, or if the image has mode “1” or “P”, it is set PIL.Image.NEAREST. txt = "" for i in range(HEIGHT):
for j in range(WIDTH):
txt += get_char(*im.getpixel((j,i)))
txt += '\n' print txt if OUTPUT:
with open(OUTPUT, 'w') as f:
f.write(txt)
else:
with open("output.txt",'w') as f:
f.write(txt)

最新文章

  1. Java Annotation概述
  2. ruby不能识别中文的一个坑
  3. 利用循环播放dataurl的视频来防止锁屏:NoSleep.js
  4. 深入理解计算机系统(2.8)---浮点数的舍入,Java中的舍入例子以及浮点数运算(重要)
  5. GPS坐标互转:WGS-84(GPS)、GCJ-02(Google地图)、BD-09(百度地图)
  6. 从 bcp 客户端收到一个对 colid x 无效的列长度。
  7. sql的 group by 分组;linq的 group by 分组
  8. TCP/IP协议原理学习笔记
  9. 给config加密
  10. 各种排序算法(C语言)
  11. 1.3 LINQ查询
  12. ROC与AUC
  13. 【转】关于swf安全沙箱冲突:不能被本地访问
  14. 第一章:大数据 の Linux 基础 [更新中]
  15. mysql error 2005 - Unknown MySQL server host &#39;localhost&#39;(11001)
  16. PY序
  17. ftp的自动部署以及添加虚拟账户的脚本
  18. python 当前时间多加一天、一小时、一分钟
  19. attr 和 prop 的区别
  20. Mac下搭建react及bable

热门文章

  1. js之留言字数限制
  2. 【排序】归并排序,C++实现
  3. JVM原理一
  4. ios一些噁心记录
  5. windows中的oracle12SE后启动的系统服务的列表
  6. HDU - 6172:Array Challenge (BM线性递推)
  7. a链接嵌套无效,嵌套链接最优解决办法
  8. BZOJ2761: [JLOI2011]不重复数字【set】【傻逼题】
  9. 使用stsadm.exe工具实现SharePoint网站备份还原
  10. bean:write