写真をズームイン動画にする
写真からズームインする動画を作ります。写真の四方をカットし任意の動画サイズにリサイズします。このカットの大きさを徐々に増やすことでズームインしているように見せます。
関連記事
環境
- windows10 home
- Anaconda 3/ jupyter notebook 5.6.0
- Python 3.7.0
- Pillow 5.2.0
準備
画像はフリー写真素材ぱくたそからダウンロードさせていただき、jupyter notebookファイル(***.ipynb)と同じディレクトリに保存しました。
ikari.jpg(幅6720px高さ4480px)
コード
pillowのcropにより元画像をクロップします。左右のクロップ幅を0~元画像の幅の1/3、上下のクロップ幅を0~元画像の高さの1/3と徐々に増やすことでズームインに見せます。クロップした画像は元画像の1/10サイズにリサイズし、画像保存用リストに追加、そのリストからgifアニメを生成します。
from PIL import Image im = Image.open('ikari.jpg') # 画像読み出し (width, height) = (im.width, im.height) img_list = [] # 画像保存用リスト # 画像をクロップして四方を等間隔に削り、 # 元画像の1/10にリサイズ、画像リストに追加 for i in range(50): im_crop = im.crop((width/150*i, height/150*i, width*(1-i/150), height*(1-i/150))) im_resize = im_crop.resize((width//10, height//10)) img_list.append(im_resize) #アニメーションgifファイルを作成(1フレーム30ms,ループ) img_list[0].save('zoomin.gif', save_all=True, append_images=img_list[1:], optimize=True, duration=30, loop=0)
実行結果
以下のサイトを参考にさせていただきました
Pythonの文法メモ >> 【Pillow】画像の縮小拡大、切り抜き