python图像数据读取利器-imageio库的使用

Posted 叶叶酱

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了python图像数据读取利器-imageio库的使用相关的知识,希望对你有一定的参考价值。

极简化的图像数据读取库,官方文档

  • Imageio 是用纯 Python 编写的,所以安装很容易:pip install imageio

  • Imageio 依赖于 Numpy 和 Pillow

"""
将GIF图像保存为PNG图片
"""
import imageio
im = imageio.get_reader(r\'C:\\Users\\admin\\Pictures\\Saved Pictures\\GIF.gif\')
num = 1
for frame in im:
    imageio.imsave(\'./image/%s.png\'%num,frame,\'PNG\')
    num += 1
print("这张GIF图片总共由:%s张 PNG图片组成!!!"%num)

run代码之后,查看保存路径的文件夹:

"""
将多张图片按照需要进行gif动图制作

"""
image_list = []
# 存储图片的路径
file_name = r\'D:\\learn\\project\\new_image\\image\'
# 提取出该文件夹下所有文件名称,并将其存储为列表格式
for image_name in os.listdir(file_name):
    image_list.append(image_name)
"""
此时打印image_list:
[\'1.png\', \'10.png\', \'11.png\', \'12.png\', \'13.png\', \'14.png\', \'15.png\', \'16.png\', \'17.png\', \'18.png\', \'19.png\', \'2.png\', \'20.png\', \'21.png\', \'22.png\', \'23.png\', \'24.png\', \'25.png\', \'26.png\', \'27.png\', \'28.png\', \'29.png\', \'3.png\', \'30.png\', \'31.png\', \'32.png\', \'33.png\', \'34.png\', \'35.png\', \'36.png\', \'37.png\', \'38.png\', \'39.png\', \'4.png\', \'40.png\', \'41.png\', \'42.png\', \'43.png\', \'44.png\', \'45.png\', \'46.png\', \'47.png\', \'48.png\', \'49.png\', \'5.png\', \'50.png\', \'51.png\', \'52.png\', \'53.png\', \'54.png\', \'55.png\', \'56.png\', \'57.png\', \'58.png\', \'6.png\', \'7.png\', \'8.png\', \'9.png\', \'image_gif.gif\']

# 此时读取到的文件名顺序是完全混乱的,按照需求需要将文件进行排序,而 sort()采取了按字符键值排序的手段
# lambda x:int(x.split(\'.\')[0]) 对每个文件名将句号前的字符串转化为数字,然后以数字为key来进行排序
"""
image_list.sort(key=lambda x: int(x.split(\'.\')[0]))

# 设置生成GIF图片的文件名
gif_name = \'./image/image_gif.gif\'

"""
读取 存储文件名的列表,并筛选出PNG格式的文件,拼接路径后再次存储在列表中
前面单独存储一个列表是为了排序的时候方便
# imageio.imread()  从指定的文件读取图像。返回一个NUMPY数组,该数组带有元数据的元属性。

"""
frames = []
for im in image_list:
    if im.endswith(\'.png\'):
        im = os.path.join(file_name, im)
        frames.append(imageio.imread(im))
    else:
        print("该文件不是需要的PNG图片:"+ im)

# duration,设置切换间隔,单位:秒
imageio.mimsave(gif_name,frames,\'GIF\',duration = 0.2)
print(gif_name + \'生成成功!!!\')

以上是关于python图像数据读取利器-imageio库的使用的主要内容,如果未能解决你的问题,请参考以下文章

无法使用 ImageIO.read(文件文件)读取 JPEG 图像

java IMAGEIO

有了这个方法群聊斗图你就不会输了(Python imageio制作gif动图)

图像的读取缩小保存

Python爬虫利器1:Requests库的用法

在 Python 中使用三个不同的库读取图像时的三种不同类型的输出