In [369]:
from PIL import Image, ImageDraw, ImageFont
import numpy

yosemite = '/Users/ares/Pictures/Yosemite-us.jpg'
me = '/Users/ares/Pictures/me4.jpg'
lyuba = '/Users/ares/Pictures/lyuba.jpg'


kanji1 = "蜀輸雄明京手子汁り"
kanji2 = '置蜀輸雄明京手子汁りしン'
kanji3 = 'フォントサイズをにして、表示位置を少し調整すると、文字は表示できた。'
kanji4 = '几仄仇什曰叩伜卍吊吃牝佇呆吠囮妓屁巫彷扮肛杓杞牢禿乖侘卦咎呟呵呻姐姑妾怯拗沽泄狗狐狛炒爬軋剃叛咳咤垢姦姜屍屏峙徊恍拮洩洒狡茹茫扁胚枷柩歪炸砒袂虻酊酋俯冤唖埃埒屓悍捏涜涎涅浣狸狽拿胱脆烙逅疹疼疱眩罠祟舐蚤啖唸埠娼屠徘悴悸掻掟淘猜脛梱桿焉烹痔痒笥粕蛋蛆訛訝貶躯扈勒喘壺奢媚幇徨愕揶揄揉渾猥葱悶晰腋脾腑棍椒毯焙琲甦痙痣筍筏絨蛙蛭蛤覗詛跋靱韮黍嗜猾隕腿腱楡爺牌痰痺睨罫褌蛾蜃蛸裔詭誅跪辟酩雹飴鼠厭嘘嘔塵滲漉慇敲膀槃煽睾翡蝕誑銚儚噛嬌憔憮憫撓戮膣膵皺瞑磔磋褪蝿誹麹鋲鋤餃澱澹薔薇憑燐瞠瞞諜諫蹂踵躾錨閻餐頸頷髭髷鮒濤獰懃膿朦臀邂癌瞰糠糞縷謗賽鍾鍼鍍闊餞顆鮭鮫鮪鮨濾燻瞼謳謬贅贄魍魎檻蟻蠍贋躇轍騙鯵鯖鯱鯰鹸懺灌瀾朧礫躁饉饅鰐鰊囁爛贔躊饒魑鰤鶯聾贖轢驕鰻鱈攣讐躙鰹'
kanji_grade1 = '一右雨円王音下火花貝学気九休玉金空月犬見五口校左三山子四糸字耳七車手十出女小上森人水正生青夕石赤千川先早草足村大男竹中虫町天田土二日入年白八百文木本名目立力林六'
korean = 'ㄱ ㄳ ㄴ ㄵ ㄶ ㄷ ㄹ ㄺ ㄻ ㄼ ㄽ ㄾ ㄿ ㅀ ㅁ ㅂ ㅄ ㅅ ㅇ ㅈ ㅊ ㅋ ㅌ ㅍ ㅎ ㄲ ㅆ ᇸ'.replace(' ','')
symbs = '!@#$%^&*/-. '

img = me
characters = symbs
size = 70
ratio = 0.6

img2symbols(img,characters,size, ratio)


$$$$$$$$$$$$$$$$##$##########################################$%%%%%/  
$$$$$$$$$$$$$$####################################################$%%%
/%#$$$$$$$$$$###############################$$$%$#####################
*********!%$$$$##########################$%%%%%%%%####################
       ...---*---.!%#$$###############%%%$$$$$$$#$$%%#################
                     .......%$$$$##%%%$######$$#####$%################
                                   *$$####$%%%%%%%$$#$$$#########$%%%%
//!*                               /$#$%%%%%%%%%%%%%%$#$%####%%%/////!
$$$$$%%%/////!*.                  -%$%%%%%%%%%%%%%%%%%$#%%//////!!**-.
!!*/%%$$$$$%%$%$%%%//!!!**     .!%%$%%%%%%%%%%%%%%%%%%%$#!!!**-..     
!!!!!*!!!!!!!!!!/%%%$$$$$$$$%%%$##%%%%%%%%%%/////%%%%%%$$%           %
///!!!!!!!!!!*****!//$$#$$########%%/%%%%%%%%%%%%%%%%%%%$/     .%%%###
//////////!!!!!!!!!#$$############%/%%$$$%%%%%%%$$%%%%%%%///%$########
///////////////////##########$#!-./%%%%%%%%%%%$$%%%%%%%%%%############
///////////////////#########*-    !%%%$$$%%//%$#%##$%%%%%%############
///////////////////####$.        *//%%%%%%%//%%%%%%%%%%%%%$###########
///////////////////$$*.      */%%%//////%%////%%%////%%%%%          .*
%/////////////////*     -!///%%//////%%%%%%%%%%%$%%%%%%%%%  ./%%%$####
$$$$$$$$$$$$$$/////$$$%%%%%%///! ./%%%%%%%%%%$$%%%%%%%%%%%$$%%/!!!////
#$$$$$$$$$$$$$/////%%$%! -!/%%%%$$%%%%%%%%%%%%%%%%%%%%%%%!/////////%%%
##$$$$$$$$$$$$/////%%%%%%%%%%/*!!!%%%%%%%%%%%%%$#$%%%%%/////////%%%%%%
####$$$$$$$$!$/////*****!%%-*!!!!!/%%%%%%%%%%%%%%%%%%%%/////////%%%%%%
######$##$$#/$/////!****%%%%**!!!!!%%%%%/%%%%%%%%%%%%%//////////%%%%%%
############$$%%/%/!!***%///*!!!!!!-/%//%/%%%%%%%%%%%%/////////%%%%%%%
############$$%%%//!****%*%/***!!*/-**%%%%%%%%%%%%%%%%%//////%%%/%%%%%
##############%%%%/!****--*****%**-***%$%%%%%%%%$$%%%%#$/%%//%%%/%%%%%
############%!!////%$**//%$*%**-**-** /%%######$$%%%%###$%%%%%%%%%%%%%
####################$%%%/!!***********/%%%$$$$%%%%%$####$$%%%%%%%%%%%%
################$#####################$%%%%%%%%%%%#####$$#$##$#$%%%%%%
###########%%%%%///#/%#%$############%$%%$$$$$%%%###############$#$$%%
##########%%%%%%///%%%##/###########%%$%%$$$$$$#######################
##########%$%/%%#%%#%%#//############$%%%%%%%#$$######################
###########%#%#%#$##################$#%%%%%%%#########################
#############%#/%%##################%#$%%%############################
#######################################%$#############################
#######################################$##############################
######################################################################
######################################################################
#########$$$###############%%#####$###################################
#########$$$#############%%%%%%###$###################################
#########################%%%%%%#######################################
##################%%#######%%$########################################

In [310]:
def img2symbols(img, charset, size, ratio):
    charlist = chars2dict(charset)
    im = Image.open(img,'r').convert('L')
    resize = (size, int(size/(im.width/(im.height*ratio))))
    im = im.resize(resize)
    for h in range(im.height):
        for w in range(im.width):
            x = im.getpixel(xy=(w,h))
            print(getSymbol2(x, charlist),end='')
        print('')

In [350]:
def char2val(x):
    fnt = ImageFont.truetype('/Library/Fonts/Arial Unicode.ttf', 30)
    txt = Image.new('L', (40,40),(255))
    d = ImageDraw.Draw(txt)
    d.text((1,1), x, font=fnt, fill=(0), spacing=0)
    txt.show()
    value = list(txt.getdata())
    val = int(sum(value)/len(value))
    return val
char2val('흗')


Out[350]:
214

In [341]:
def chars2dict(charset):
    charvals = []
    chardict = {}
    for char in characters:
        z = char2val(char)
        charvals.append(z)
        chardict[char] = z
    multiplier = 255/(max(charvals)-min(charvals))
    final = []
    for key in chardict:
        final.append((key,int((chardict[key]-min(charvals))*multiplier)))
    return sorted(final, key=lambda x: x[1])

In [342]:
def getSymbol2(s, chardict):
    for char in chardict:
        if s <= char[1]:
            return char[0]
    return "ERROR: %s" % s

In [356]:
chars2dict(characters)


Out[356]:
[('ㄻ', 0),
 ('ㄿ', 0),
 ('ㅀ', 0),
 ('ㄼ', 0),
 ('ㄾ', 8),
 ('ㅄ', 8),
 ('ㅎ', 24),
 ('ㄽ', 24),
 ('ㄹ', 41),
 ('ㄶ', 49),
 ('ㅌ', 49),
 ('ㄵ', 49),
 ('ㅂ', 57),
 ('ㄺ', 57),
 ('ㅆ', 57),
 ('ㅁ', 57),
 ('ㄳ', 74),
 ('ㅍ', 74),
 ('ㅊ', 74),
 ('ㅈ', 90),
 ('ㄲ', 98),
 ('ㄷ', 98),
 ('ㅇ', 106),
 ('ㅋ', 123),
 ('ㄴ', 139),
 ('ㄱ', 148),
 ('ㅅ', 148),
 (' ', 255)]

In [360]:


In [ ]: