效果:
原图:
效果图
@+ + + + + + +@@@+ ++ ++ + +@@@@+ ++ ++ ++ +++ ++@@@+ ++ + + ++ +++++ + ++@@+ ++++ ++ + + + ++ +++ + + + + ++ +@ +++++++ + +++ +@ ++ ++++ ++++ + +@+ ++ + ++ +++ + + + +@+ @ + ++ ++++ + + ++ +@@+ ++ + ++ ++ + + + ++@@++@@++ +++ ++ +++ ++++++++ + +++++ +@@@++ ++++ + +++++ ++ +++@++ ++++++++ ++ + ++++ ++@ +++++++++++ ++++++ +++++ + ++ ++ ++++@+ ++++@@@@@@@@+++@@++++++ ++ + ++ + ++ +@+++ ++ ++@@@@@@@+++ ++ ++@+ ++ +++ +@++++++ @+ +++ +@@@++++ ++@ ++ ++ + +@@+++++++++ @+++ +@@++ +@@+ + ++++ + +@+ ++ @@ +@@++ +@+ ++ ++ ++ + + @@ + ++ @@ @++ ++@@+ + ++ + @@+@ + ++- +@+ ++@@+ + ++ @ + @@++ +- @@ ++@@++++++++ ++++++@@@++ + + @ +@++ + +@@++ @=@ +@@ +++@@@@@@@+@++++ ++ + ++ +@+ ++ +@@@@+ @@+ ++-+ ++++ ++ ++ ++ + @@ ++++++ ++ + ++- ++++++ ++ ++ ++-+ + + +++++++@@++ + + @@ ++++ +@+ +@+ ++ + + +@+++++ + ++++ ++@@@+++++ + +++@@+ + + +++@@+++++++ + +++@@+ ++ ++ +++++++ ++@+ + + + + + ++ @@ ++ ++ + ++ +++ +-++ @ +++++@@+@++++ ++++ + + ++ @+ ++ ++++++++++++++++++++++++++++++++ +++++++++ ++++++++++++++++ + +++++++++++++++ + + + ++++++++++++++++ ++++++++++ +++++++++++++++ + +++++ +++++++++++++++++ ++ + ++++@@@++ +++++@@@++++@@++++++++ ++++ ++ ++@@@@@+ +++++@@@@++@@@@++@++++ ++++ + ++@@@+ ++@@+@@@@++@@@@++@@+++ +++ + + +@@+ +@@@@@@@@++@@@@+++@@+ +++ ++ @@+ +@@+++@++ +@@@@@++@@++ +++ + + +@+ +++++ ++++++@@@@+++@@+ +++ ++++ +@+ +++ +++++@@@@+++@@+ + +++++ + + @+@+++++++@@@++++@++ ++ +@@+ ++ + @++@++ +++++@@++ +@++ ++ +@@++ +++ @@++++++++++++ @+ ++++++++++ +++ ++ ++ + +@@++ ++ + + +@ @+++ +++ @+++ ++@+++ ++++ ++ ++++ ++@+ + +@
流程
1: 我们使用工具把图片, 转为线稿图
, 尽量去噪, 比如这个网站 http://www.atoolbox.net/Tool.php?Id=1099#google_vignette
2: 使用python代码, 将线稿图
转化为文本图
我们使用如下工具, 如果某些ascii_chars
不是想要的格式, 直接改就行
# coding=utf-8
from PIL import Image# 打开图片文件
image = Image.open(r'H:\lyl_s.png')# 调整图片大小
width, height = image.size
aspect_ratio = height / width
new_width = 400
new_height = 200
image = image.resize((new_width, new_height))# 将每个像素转换为灰度值,并映射到ASCII字符上
ascii_chars = '@%#*+=-:. 'text_image = ''
for y in range(new_height):for x in range(new_width):pixel = image.getpixel((x, y))brightness = sum(pixel) / 3 # 灰度值char_index = int((brightness / 256 - 1)* len(ascii_chars)) # 映射到ASCII字符,确保不超出范围text_image += ascii_chars[char_index]text_image += '\n' # 换行# 保存文本图片
with open('text_image.txt', 'w') as f:f.write(text_image)