您的位置:首页 > 编程语言 > Python开发

python图片转字符

2016-03-15 21:33 429 查看
首先安装pip

$ sudo apt-get install python-pip python-dev build-essential

$ sudo pip install –upgrade pip

$ sudo pip install –upgrade virtualenv

#coding=utf-8
#灰度值公式:灰度值 = 0.2126 * r + 0.7152 * g + 0.0722 * b

from PIL import Image
import argparse

#获取参数
IMG = '/home/xuhang/桌面/new/python小程序/画转字符/1.png'
WIDTH = 80
HEIGHT = 60
OUTPUT = '/home/xuhang/桌面/new/python小程序/画转字符/p2c.txt'
#所用的字符
ascii_char = list("$@B%8&WM#*oahkbdpqwmZO0QLCJUYXzcvunxrjft/\|()1{}[]?-_+~<>i!lI;:,\"^`'. ")

# 将256灰度映射到70个字符上
def get_char(r,b,g,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__':

im = Image.open(IMG)
im = im.resize((WIDTH,HEIGHT), 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)


原图:



结果

$$$%aQQQb#$$
$#r[[[aI (X[|" (#$
%1[[[[[rp     ap    "|1$
$|[[[[[[[h       n     p[[q$
$$[[[[[[[[[[     Cf"h h"h  |[[[%
$t[[[[[[[[[[[    (  hp-   I U[[[[$
%[[[[[[[[[[[ta(       pO     -  zZ[%
$[[[[[[[[[[q(  C}      "(kZqhf     (X$
$[[[[[[[[1O       p> Ih }Z   ZW    Cz>>  C
$[[[[[[[[M    -OO-"      (ZZZZZ% h         n
q[[[[[[[a          >Cp-   MZZZm>
$[[[[[[[#                    C-   fpnn-----
#[[[[[[1"   nn----           IO             >
[[[[[[uC                      z             $
$[[[[[[h                       }     >nhC-  $
$[[[[[[     WZZZZZZqk%omd#%O(" -         pI
$[[[[[r     bZZb%#wZZZZZZZZZZZZmbo&&pW&oa  -
$[[[[[a     kZZZZZZZZZZZZZZZZZZZZZZZZZZZI  C
$[[[[[a     WZZZZZZZZZZZZZZZZZZZZZZZZZZ&   $
$[[[[[p     }ZZZZZZZZZZZZZZZZZZZZZZZZZa   O$
r[[[[a      %m&OOOOOOmWaZZZZZZZZZZZZk    $
#[[[[U      I#OOOOOOOOOOoqZZZZZZZZZZ-   -
$[[[[[}      -OOOOOOOOOOOOMZZZZZZZd"    $
Z[[[[&"      OOOOOOOOOOOOO%ZZZZZq>    n
$1[[[[q       "kOOOOOOOOOOObZZZ&     }
B[[[[[-        %OOOOOOOOOO%ZZh      $
#[[[[1"         IBmOOOOOOB"      >$
r[[[[b            z&o&O"       >$
Z[[[[X    }O&adZ%     bZwo&%wZZM
$r[|#aZZZZmboo*       zM*Z0Z@-$
$&ZZZZWZ1[[[[-        aJzzzZ">
$qW$1[[[[[[[["        zzzCZz" $
%[[[[[[[[[[[C       -zzz0zb  $
$[[[[[[[[[[[[C     ("nMq$n   $
[[[[[[[[[[[#"#} -h   >---   p
r[[[[[[Uq[o Ip>             f  #    "$
q[[1Q#t[[Xf -               n$}       $
$[[[[[[[[a                  (         "
$[[[[[[[[a   n             fn
[[[[[[[[Uf   -           (O
$oZw$ U[[[[[[[[X    n(       z} -          I
&ZZZZ$a[[[[[[[[[h     "nCOn(   q           C
MZZZZ$Q[[[[[[[[[[q           p[r           $
$kZZ@ |[[[[[[[[[[[rz       -q[[[          n
$[[[[[[[[[[[[[[[[1r[[[[[[[[(        }
$[[[[[[[[[[[[[[[[[[[[[[[|QaB       "$
$(a[[[[[[[[[[[[[[[[[u%$$      $C   }$
$> o[[[[[[[[[[[[[[[a$
$   >[[[[[[[[[[[[&$
$    n[[[[[[[[u$
p     C1[[[[r$
$        fp8
$           $
n          (
$O         z
$(      ($
$*nnC$
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  python 图片转字符