没有对象?程序员的浪漫,对象攻略(2)

前言:

上一篇做了图片转字符画,感谢大家支持,今天继续转字符画升级版,GIF也转字符画。


效果图:

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述


理论:

  1. 把动态图转化为一帧一帧的单张图片。
  2. 把每一帧图片,分别转化为字符图。把转化完成的图片数组,保存到列表里面。
  3. 把列表转化为动态图。

库:

Imageio是一个Python库提供了一个简单的接口来读取和写入各种图像数据,安装命令:

pip install imageio

cv2模块基本上就是一个针对图像操作的模块,详情请移步:模块cv2的用法,安装命令:

pip install opencv-python

完整源码1:

import imageio as igo
import cv2
pic1 = input("请输入要转化的GIF图名称:")
pic2 = input("请输入GIF图转化后的名称:")
pics=igo.mimread(pic1)
string = '@@@@@@@@@@@@@@@@@'
A = []
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(((len(string)-1)*pix)/256)]
            cv2.putText(c,zifu,(j,i),cv2.FONT_HERSHEY_COMPLEX,0.3,(int(b),int(g),int(r)),1)
    A.append(c)
igo.mimsave(pic2,A,'GIF',duration = 0.1)

完整源码2:

import imageio as igo
import cv2
import numpy as np
pic1 = input("请输入要转化的GIF图名称:")
pic2 = input("请输入GIF图转化后的名称:")
# 读取gif,将每一帧存储在pics数组中
pics = igo.mimread(pic1)
print(np.array(pics).shape)
A = []
# 允许出现的字符数
string = '0000000000000000000000000000000000000000000000000000'
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(pic2, A, 'GIF', duration=0.1)

补充说明:

基本理论和图片转字符画一样,只不过这次是GIF转字符画,GIF可以看做是一帧一帧的静止图像,转化的原理一模一样,单帧转化,再拼成GIF动图。


使用说明:

  1. 复制上述所有源码。完整源码1,或者完整源码2,都是可单独运行的。
  2. 将需要字符画的GIF图放置当前文件夹下。
  3. Run直接运行即可,在控制台输入要转化的GIF图名字,和输出完之后的名字。
  4. 成功拿到图片。
  5. 哪里有什么问题,私聊博主即可。
    在这里插入图片描述
    在这里插入图片描述

最后:

更多有趣源码,资料,+扣扣群,大家一起分享

在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/qq_43321912/article/details/108579560