视频转字符动画

原理

  1. 读取图片
  2. 设置图片尺寸
  3. 读取每个像素点灰度值使用相应密度的字符代替以字符串保存
  4. 输出

关于把视频转成图片推荐使用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
点赞
  1. Google Chrome Windows 7
    你应该先给网站安装一下SSL,开启https访问。不知道你用的是虚拟主机,还是VPS,如果是VPS的话就很简单,虚拟主机的需要自己先申请免费SSL。
    1. Taki说道:
      Google Chrome Windows 10
      感谢提醒,ssl证书已经配置完成 :kaixin:
      1. Google Chrome Windows 7
        看到了,你应该强制SSL,把http全部强制使用https,否则你访问http://takidelth.cn还是通的。
        1. Taki说道:
          Google Chrome Windows 10
          从cdn设置了强制https,蟹蟹大佬 :huaji21:

发表评论

电子邮件地址不会被公开。必填项已用 * 标注