图片转字符画
图片转字符画
阿豪boy 发表于5个月前
图片转字符画
  • 发表于 5个月前
  • 阅读 8
  • 收藏 0
  • 点赞 0
  • 评论 0

标题:腾讯云 新注册用户域名抢购1元起>>>   

 所用字符比较少的话效果更好

import argparse
from PIL import Image

# 字符画所用的字符集

# ascii_char = list("$@B%8&WM#*oahkbdpqwmZO0QLCJUYXzcvunxrjft/\|()1{}[]?-_+~<>i!lI;:,\"^`'. ")

ascii_char = list('#$@+-*,. ')


def getChar(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)]


def get_char_img(src, width, height, output=None):
    im = Image.open(src)
    im = im.resize((width, height), Image.NEAREST)

    txt = ""
    for i in range(height):
        for j in range(width):
            txt += getChar(*im.getpixel((j, i)))
        txt += '\n'
    print(txt)

    if output:
        with open(output, 'w') as f:
            f.write(txt)
    else:
        with open('char_' + src.split('.')[0] + '.txt', 'w') as f:
            f.write(txt)


''' 海贼王
IMG = 'onepiece.jpg'                 
WIDTH = 500                          
HEIGHT = 375                         

'''
IMG = 'img.jpg'
WIDTH = 153
HEIGHT = 153
IMG = 'lufu.jpg'
WIDTH = 500
HEIGHT = 918

IMG = 'zhangwei.jpg'
WIDTH = 120
HEIGHT = 160

IMG = 'img.jpg'
WIDTH = 153
HEIGHT = 153

IMG = 'cat.jpg'
WIDTH = 400
HEIGHT = 600
IMG = 'ahao.jpg'
WIDTH = 210
HEIGHT = 300
get_char_img(IMG, WIDTH, HEIGHT)

 

 

字符要是多的话,会过于清晰

 

对于动漫人物效果比人效果好,主要颜色分布比较均匀

共有 人打赏支持
粉丝 4
博文 492
码字总数 364743
×
阿豪boy
如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!
* 金额(元)
¥1 ¥5 ¥10 ¥20 其他金额
打赏人
留言
* 支付类型
微信扫码支付
打赏金额:
已支付成功
打赏金额: