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 + '生成成功!!!')


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM