利用Python实现图像字符化(又称 ASCII 艺术)

创创的小站
2020-05-10 / 1 评论 / 77 阅读 / 正在检测是否收录...

如题,利用Python将图片转化为字符画
(ps:如果不想自己动手下面有个其他博主搭建的演示站可以直接生成字符画,我的主页F12调出控制台能看到效果)
话不多说上代码:
导入模块

# 导入模块
from PIL import Image

输入主题代码

# 转换函数
def convert(img):
    # 要索引的字符列表
    ascii_char = list("@#&$%863!i1uazvno~;*^+-.  ")

    # 字符长度
    length = len(ascii_char)
    # 读取图像文件
    img = Image.open(img)
    # 获得图片的宽和高
    (width, height) = img.size
    # 对图像进行一定缩小
    img = img.resize((int(width * 0.1), int(height * 0.05)))
    #可以对参数进行修改:宽度(width*0.1),高度height(height * 0.05),ps:看导文档出效果进行修改
    # 转为灰度图像
    img = img.convert("L")
    txt = ""
    for i in range(img.size[1]):
        for j in range(img.size[0]):
            # 获取每个坐标像素点的灰度
            gray = img.getpixel((j, i))
            # 获取对应坐标的字符值
            unit = 256.0 / length
            txt += ascii_char[int(gray / unit)]
        txt += '\n'
    return txt

输入图片及导出字符文本模块

# 传入需要转换的原始图片
txt = convert('1-1.jpg')
# 把转换后的字符存入txt文件
f = open("convert.txt", "w")
f.write(txt)
f.close()

效果图:
1-1.jpg
2021-05-24_180420.png

整体代码归纳:

# -*- coding: utf-8 -*-
# @Time    : 2021/4/1 15:32
# @Author  : 创创http://yanchuangblog.top/
# @FileName: 图片文字化.py
# @Software: PyCharm
# 导入模块
from PIL import Image


# 转换函数
def convert(img):
    # 要索引的字符列表
    ascii_char = list("@#&$%863!i1uazvno~;*^+-.  ")

    # 字符长度
    length = len(ascii_char)
    # 读取图像文件
    img = Image.open(img)
    # 获得图片的宽和高
    (width, height) = img.size
    # 对图像进行一定缩小
    img = img.resize((int(width * 0.1), int(height * 0.05)))
    #可以对参数进行修改:宽度(width*0.1),高度height(height * 0.05),ps:看导文档出效果进行修改
    # 转为灰度图像
    img = img.convert("L")
    txt = ""
    for i in range(img.size[1]):
        for j in range(img.size[0]):
            # 获取每个坐标像素点的灰度
            gray = img.getpixel((j, i))
            # 获取对应坐标的字符值
            unit = 256.0 / length
            txt += ascii_char[int(gray / unit)]
        txt += '\n'
    return txt


# 传入需要转换的原始图片
txt = convert('1-1.jpg')
# 把转换后的字符存入txt文件
f = open("convert.txt", "w")
f.write(txt)
f.close()

如果想其他方式生成字符画可以去下面这个其他博主搭建的网站
演示站:https://www.yunyoujun.cn/char-dust/
这个博主搭建的网站也是挺好用的,直接拖入图片就行。

4
赞赏排名 赞赏支持

免责声明:仅供学术研究使用。对于违反相关法律、造成危害的滥用行为,开发者不负任何责任。

特别说明:

1、 此文如未标注转载均为本站原创,自由转载请表明出处来源于本站。
2、本站所有資源僅供學習與參考,請勿用於商業用途,否則產生的一切後果將由您自己承擔!
3、本站資源來自網絡收集或本人原創,轉載請註明出處!
4、若資源侵犯了你的版權,請聯繫博主,我們會在24H內刪除侵權資源!

评论 (1)

取消
  1. 头像
    鱼酱
    Android · QQ Browser

    我去试试表情

    回复