Python学习,用python制作字符版gif图

本文介绍如何使用Python将图片转化为字符版图片,特别是动态GIF图。涉及的库包括PIL、imageio、numpy、cv2。文章详细讲解了处理环境配置、动态图拆分、转换及合成过程,提供了不同处理方法和源代码示例。
摘要由CSDN通过智能技术生成

一、背景
本片文章我们讲述下怎么把一张图片处理成字符版图片,就是说使用字符替代每个像素的颜色,形成一个由字符组成的图片,并且字符的颜色是由原始的图片像素颜色决定

二、准备环境

对图片的操作我们可以使用PIL、imageio和image2gif库,处理像素我们选择使用opencv-python这个库。NumPy是Python语言的一个扩展程序库,支持大量的维度数组与矩阵运算,此外也针对数组运算提供大量的数学函数库。因此我们需要安装以下几个包:PIL、imageio、numpy、cv2、

images2gif
 pip install pillow
 pip install imageio
 pip install numpy
 pip install opencv-python
 pip install images2gif

以上扩展包安装时应该都可以顺利安装,但使用的时候有几个坑

1、导入cv2时,如果发生找不到dll的情况,大多数的原因都是当前的python版本和opencv版本不匹配,pip安装时默认选择了最新的版本,因此我们安装时需要指定安装的版本pip install opencv-python==3.4.1.15

2、使用images2gif这个库时,可能会出现无法导入writeGif接口的情况这个时候需要改下源码,把images2gif.py文件中的两个from 后边加上英文点号,修改如下

 from .images2gif import readGif as readGif
 from .images2gif import writeGif as writeGif

三、字符版动态图

首先我们需要搞清楚gif是个什么玩意儿,其实gif是将多幅图像保存为一个图像文件,从而形成动画,最常见的就是通过一帧帧的动画串联起来的搞笑gif图,所以归根到底gif仍然是图片文件格式。

什么?原来gif就是一帧一帧的图片,那么字符版动态图其实也就是字符版图片的连续播放,思考到这儿,我们有了如下思路:

1、拿到一张gif图

2、把fig图拆分成多张png图片,或者其他格式的图片

3、循环遍历拆分后的图片,并处理成字符版图片

4、把处理后的字符版图片在连接成一个guf文件

5、保存gif文件

通过以上5个步骤,我们即可实现我们的需求,是不是很简单,下边我们分布来讲解实现过程

四、gif和png转换

1、要想获得静态图片,我们需要有一个gif图,然后把gif图拆分成多张png图片,以下是3中处理gif图片的方式

方式1,使用Image

'''
def Gif2Png():
    gif = Image.open(gifpath)
    try:
        while True:
            current = gif.tell()
            gif.save(saveFloder + "/%d.png" % current)
            gif.seek(current + 1)
    except:
        pass

方式2,使用Image

def Gif2Png_2():
    try:
        im = Image.open(gifpath)
    except IOError:
        print ("Cant load", gifpath)
        sys.exit(
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值