背景
偶尔看到一些视频,他们把图片转字符画,平常也没有去关注,今天来捣鼓一下。
研究了一下还超级简单的,都是调用别人写好的框架。
网上也有很多教学。
代码实现
from PIL import Image
# 表示字符颜色,由深到浅(可自定义)
ascii_chars = " .,:-=+o*Oθ%@■▇"
# 像素点 转 字符
# 根据像素点颜色 选取 字符
def pixel_to_char(pixel):gray = int(0.2126 * pixel[0] + 0.7152 * pixel[1] + 0.0722 * pixel[2])unit = 256 / len(ascii_chars)return ascii_chars[int(gray / unit)]# 图片 转 字符画
# 参数:
# image_path:图片路径,
# output_width : 图片大小
def image_to_ascii(image_path, output_width=100):img = Image.open(image_path)width, height = img.sizeoutput_height = int(output_width * height / width * 0.55)img = img.resize((output_width, output_height))ascii_img = ''for i in range(output_height):for j in range(output_width):pixel = img.getpixel((j, i))ascii_img += pixel_to_char(pixel)ascii_img += '\n'return ascii_img
# 调用
print(image_to_ascii(你图片的路径, 180))
效果