原文連接 何曉東 博客html
一個娛樂代碼,將表情包 gif 倒放很搞笑,當成本身的一個小玩具,操做就是將圖片讀取成幀,倒排合併一下,成爲新的圖片,完成。
效果:翻轉前 翻轉後
python
代碼以下:segmentfault
# encoding: utf-8 from PIL import Image, ImageSequence # 讀取GIF im = Image.open("nba.gif") # GIF圖片流的迭代器 iter = ImageSequence.Iterator(im) index = 1 # 遍歷圖片流的每一幀 for frame in iter: print("image %d: mode %s, size %s" % (index, frame.mode, frame.size)) frame.save("./images/frame%d.png" % index) index += 1 # frame0 = frames[0] # frame0.show() # 把GIF拆分爲圖片流 imgs = [frame.copy() for frame in ImageSequence.Iterator(im)] # 把圖片流從新成成GIF動圖 # imgs[0].save('out.gif', save_all=True, append_images=imgs[1:]) # 圖片流反序 imgs.reverse() # 將反序後的全部幀圖像保存下來 imgs[0].save('./reverse_out.gif', save_all=True, append_images=imgs[1:])
另外極簡版更簡單app
# encoding: utf-8 from PIL import Image, ImageSequence im = Image.open(r'./nba.gif') sequence = [] for f in ImageSequence.Iterator(im): sequence.append(f.copy()) sequence.reverse() sequence[0].save(r'./r-nba.gif',save_all = True, append_images=sequence[1:])
將多張靜態圖片生成 gif 的代碼,這個年末能夠將每一年的圖片合併成一個大的 gif 以留做回憶,卻是頗有用的ide
# coding=utf8 import imageio import os path = '../images' filenames = [] for files in os.listdir(path): if files.endswith('jpg') or files.endswith('jpeg') or files.endswith('png'): file = os.path.join(path,files) filenames.append(file) images = [] for filename in filenames: images.append(imageio.imread(filename)) imageio.mimsave('movie.gif', images, duration = 0.3)
原做者不建議使用 image2gif 包,詳見一樓回答spa
固然若是你有需求將一組尺寸同樣的照片生成 gif,能夠郵箱 hexiaodong1992@outlook.comcode
參考連接:htm
少年,你必定渴望--> 知識的源泉圖片