原理
- 读取图片
- 设置图片尺寸
- 读取每个像素点灰度值使用相应密度的字符代替以字符串保存
- 输出
关于把视频转成图片推荐使用ffmpeg
命令: ffmpeg -i '{视频路径}' -r {帧数} -f image2 '{存储目录}\%d.jpg'
例: ffmpeg -i 'C:\a.mp4' -r 30 -f image2 'C:\img\%d.jpg'
from PIL import Image
import time
char = " .*:`^+-!;[\"<>]&$%#"
# char = '#%$&]><"[;!-+^`:*.'
def get_char(r, g, b, alpha=256):
if alpha == 0:
return ' '
# 把灰度值 使用字符替换
gray = int(0.2126*r + 0.7152*g + 0.0722*b)
unit = 256 / len(char)
return char[int(gray//unit)]
def printCharImage(path, width, height):
img = Image.open(path) # 1. 读取图片
w, h = width, height
img = img.resize((w, h)) # 2. 设置图片尺寸
txt = ""
for i in range(h):
for j in range(w- 1):
# 3.读取每个像素点灰度值使用相应密度的字符代替以字符串保存
txt += get_char(*img.getpixel((j, i)))
txt += '\n'
print(txt) # 4. 输出
# 加个循环遍历一个路径的所有突篇就能做到字符动画播放的效果了
报错
- ModuleNotFoundError: No module named 'PIL'
- 解决方案:
命令行[终端]执行
pip install -i https://pypi.doubanio.com/simple pillow
- 解决方案: