1.提前安装两个包

pip install imageio
pip install opencv-python

2.直接上代码

import imageio as igo
import cv2
import numpy as np

# 读取gif,将每一帧存储在pics数组中
pics=igo.mimread('bbbb.gif')
print(np.array(pics).shape)
A = []
# 允许出现的字符数
string = '~!@#$%^&*()_+-{}|":?><[]\;'
count = len(string)
# 对每一帧的图片进行处理
for img in pics:
u, v, _ = img.shape
c = img * 0 + 255
gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
for i in range(0, u, 6):
for j in range(0, v, 6):
pix = gray[i, j]
b, g, r, _ = img[i, j]
zifu = string[int(((count - 1) * pix) / 256)]
cv2.putText(c, zifu, (j, i), cv2.FONT_HERSHEY_COMPLEX, 0.2, (int(b), int(g), int(r), 1))
# 色度处理的图片存储于数组
A.append(c)
# 存储成新的gif
igo.mimsave('b.gif',A,'GIF',duration = 0.1)

3.由于无法上传gif效果图。。。

所以。。。我尽力了

4.还有将单张图片做成字符图

 

python实现将gif转成字符动图_数组

细粒度走起

python实现将gif转成字符动图_细粒度_02