乡下人产国偷v产偷v自拍,国产午夜片在线观看,婷婷成人亚洲综合国产麻豆,久久综合给合久久狠狠狠9

  • <output id="e9wm2"></output>
    <s id="e9wm2"><nobr id="e9wm2"><ins id="e9wm2"></ins></nobr></s>

    • 分享

      使用 Pillow 快速創(chuàng)建 GIF 動圖

       進擊的Grey 2023-11-27 發(fā)布于廣東

      后臺回復(fù)【入門資料

      送你十本Python電子書



      之前有篇推文分享了如何在 Matplotlib 中生成 GIF 可視化圖表,有一定的限制。本文將介紹如何用 Pillow 創(chuàng)建 GIF,可以將任意多張圖片組合在一起,成為一張可播放的 GIF 圖。

      這種方式的適用場景更多,而且 PyPI 上也沒有專門的庫可以生成 GIF,所以推薦大家收藏本文的代碼。

      什么是 GIF 圖?

      GIF(“圖形交換格式”)是一種位圖圖像格式,于1987年開發(fā)。

      GIF基本上是一系列具有不同設(shè)置的圖像,例如:

      • 循環(huán)播放

      • 每幀的持續(xù)時間(圖片)

      • 其他…

      GIF 也可以是靜態(tài)圖像。

      Pillow

      Pillow 是 Python 圖形處理庫 PIL 的一個分支,引入了許多更改和增強功能,以使API易于使用或處理更多圖像格式和要求。支持打開、處理和保存多種不同格式的圖片文件。

      利用 Python 生成 GIF

      安裝 Pillow

      第一步,我們需要先安裝 Pillow:

      1. pip install Pillow

      生成 GIF

      我們生成一張紅球往下墜落的 GIF 動圖,作為文章示例。

      首先,編寫一個函數(shù),利用 Pillow 在一張圖片上畫一個紅球。

      1. from PIL import Image, ImageDraw

      2. def create_image_with_ball(width, height, ball_x, ball_y, ball_size):

      3. img = Image.new('RGB', (width, height), (255, 255, 255))

      4. draw = ImageDraw.Draw(img)

      5. # draw.ellipse takes a 4-tuple (x0, y0, x1, y1) where (x0, y0) is the top-left bound of the box

      6. # and (x1, y1) is the lower-right bound of the box.

      7. draw.ellipse((ball_x, ball_y, ball_x + ball_size, ball_y + ball_size), fill='red')

      8. return img

      上述代碼中,我們使用 Image.new 創(chuàng)建了一張 RGB 圖片,并設(shè)置背景為白色,指定了圖片大小。

      接著,通過 ImageDraw 在圖片中的指定參數(shù)位置,畫了一個紅色的圓圈。

      所以,我們要做的就是創(chuàng)建多張圖片,不斷讓紅球往下墜。

      1. # Create the frames

      2. frames = []

      3. x, y = 0, 0

      4. for i in range(10):

      5. new_frame = create_image_with_ball(400, 400, x, y, 40)

      6. frames.append(new_frame)

      7. x += 40

      8. y += 40

      9. # Save into a GIF file that loops forever

      10. frames[0].save('moving_ball.gif', format='GIF', append_images=frames[1:], save_all=True, duration=100, loop=0)

      解釋下上面的代碼:

      1. 初始化一個空列表 frames ,以及 0點坐標(biāo) x 和 y

      2. 用一個運行十次的 for 循環(huán),每次創(chuàng)建一張 400x400 大小的圖片,圖片中紅球的位置不同

      3. 更改紅球的坐標(biāo),讓紅球沿著對角線往下墜

      4. 設(shè)置參數(shù) format='GIF', append_images=frames[1:],保存 GIF 圖片

        • 每幀圖片播放100毫秒( duration=100

        • GIF圖片一直重復(fù)循環(huán)( loop=0,如果設(shè)置為 1,則循環(huán)1次,設(shè)置為2則循環(huán)2次,以此類推)

      最終生成的 GIF 圖大概是下面這樣的:

      參考鏈接:https://blog./2018/08/21/creating-gifs-using-python-pillow/

        轉(zhuǎn)藏 分享 獻(xiàn)花(0

        0條評論

        發(fā)表

        請遵守用戶 評論公約

        類似文章 更多