【5分でわかる】PythonでPowerPointから画像や動画を抽出

 

【悩み】
・PythonでPowerPoint内の画像をサクッと抜き出せる?
・PowerPointから画像を抜き出したい場合どのライブラリを使う?
・画像だけでなく動画もパワーポイントから抽出したい!



こういった「悩み」に答えます。
 

【本記事の内容】
① Powerpointから画像や動画を抽出できるPythonライブラリ
② PythonでPowerPointから画像や動画を抽出するための準備
③ PowerPointから画像を抽出する方法
④ PowerPointから動画を抽出する方法



本記事に掲載した手順を実践したことで、30分以内でパワーポイントに埋め込まれた画像や動画を抜き出せました(下の動画参照)。
 



記事の前半では「画像や動画をPowerPointから抽出時に使うべきライブラリのインストール方法」を解説します。

記事の後半では「画像や動画を抜き出すプログラム」を紹介します。
 

この記事を読み終えることで、「画像や動画が埋め込まれたスライドを簡単に特定でき抽出できる」状態になります。
 

ちなみに、Pythonを使うことで本記事で紹介すること以外にも様々なPowerPointの操作を自動化できます。以下に実現できる範囲をまとめましたので、良ければアクセスしてみてください。

>> Pythonで実現できるPowerPointの操作一覧


 

Powerpointから画像や動画を抽出できるPythonライブラリ


PythonでPowerPointから画像や動画を抜き出したい場合、「python-pptx」や「aspose.slides」ライブラリを使います。

以下の記事でライセンスや概要をご紹介しています。気になる方は、ぜひ読んでみてください。

>> 【5分でわかる】PythonでPowerPointの新規作成操作を自動化

 

以降で、PowerPointから画像や動画を抜き出すための環境準備を説明します。Pythonやライブラリのインストール手順を丁寧に解説しますね。


 

PythonでPowerPointから画像や動画を抽出するための準備


以下の流れで準備しましょう。
 

【流れ】
手順1:Pythonのインストール
手順2:python-pptxライブラリのインストール
手順3:aspose.slidesライブラリのインストール
手順4:プレースホルダーを理解



上記の流れで説明します。
 

Pythonのインストール

以下の記事を参考にし、お使いのパソコンやサーバーにPythonをインストールしましょう。

>> 【ubuntu向け】pyenvでPythonをインストールする手順【簡単】

>> 【コピペOK】pyenvでPythonをインストールする手順【Linux用】

>> 【最短5分】PyAutoGUIをWindowsにインストールする手順の「手順1:Pythonのインストール」を参照

>> 【環境構築】インストーラーでMacOSにPythonをインストール

 

python-pptxライブラリのインストール

python-pptxライブラリのインストール手順に関しては、以下の記事の「python-pptxライブラリのインストール」箇所をご覧ください。

>> 【5分でわかる】PythonでPowerPointの新規作成操作を自動化


 

aspose.slidesライブラリのインストール

aspose.slidesライブラリのインストール手順に関しては、以下の記事の「aspose.slidesライブラリのインストール」箇所をご覧ください。

>> 【5分でわかる】PythonでPowerPointの編集操作を自動化
 

python-pptxライブラリでは、簡単にパワーポイントから動画を抜き出せません。そこで、aspose.slidesライブラリを使います。


 

プレースホルダーを理解

PowerPointには、「プレースホルダー」という概念があります。詳細に関しては、以下の記事「PowerPointのプレースホルダーを理解」の箇所をご覧ください。

>> 【5分でわかる】PythonでPowerPointの新規作成操作を自動化


 

以降で、python-pptxを使った画像抽出、aspose.slidesを使った動画抽出のプログラム例を紹介します。


 

以降のプログラムでは、以下のスライド「sample-1.pptx」を用いて解説します。


 

PowerPointから画像を抽出する方法


「PowerPointから画像を抽出する方法」に関して解説します。

画像を抜き出すプログラムは、以下となります。適宜変更部分は自分用に書き換えてください。

import collections.abc
from pptx import Presentation
from pptx.enum.shapes import MSO_SHAPE_TYPE

# スライドから画像を抽出
def check_recursively_for_image(this_set_of_shapes):
    global image_count
    
    for shape in this_set_of_shapes:
        if shape.shape_type == MSO_SHAPE_TYPE.GROUP:
            check_recursively_for_image(shape.shapes)
        else:
            if hasattr(shape, "image"):
              #保存先を設定
              save_image_file = str(image_count) + '_' + shape.image.filename

              #保存
              with open(save_image_file, "wb") as f:
                  f.write(shape.image.blob)
              image_count += 1

image_count = 0

# ファイルの読み込み
prs = Presentation('./sample-1.pptx') # 適宜変更

# スライドごとに繰り返し
for slide in prs.slides:
  # 画像を抽出し保存
  check_recursively_for_image(slide.shapes)



上記のプログラムを「python-powerpoint-extract-image.py」というファイル名で保存しましょう。
   

以下のコマンドを実行し、保存した「python-powerpoint-extract-image.py」を実行します。

python python-powerpoint-extract-image.py



コマンド実行後、スライドに埋め込まれた画像がファイルとして保存された場合、正常に画像抜き出しができたと判断できます。

 

python-pptxライブラリを使うことで、パワーポイントから画像を簡単に抽出できます。


 

PowerPointから動画を抽出する方法


「PowerPointから動画を抽出する方法」に関して解説します。

動画(例えばmp4など)を抜き出すプログラムは、以下となります。適宜変更部分は自分用に書き換えてください。

import aspose.slides as slides
# ファイル読み込み
with slides.Presentation("sample-1.pptx") as presentation: # 適宜変更
    # スライドごとに動画抽出しファイルへ保存
    for slide in presentation.slides:
      for shape in slide.shapes:
        if type(shape) is slides.VideoFrame:
            type = shape.embedded_video.content_type
            buffer = shape.embedded_video.binary_data
            with open("NewVideo_out." + type[type.rfind('/') + 1:len(type)], "wb") as stream:
                stream.write(buffer)



上記のプログラムを「python-powerpoint-extract-movie.py」というファイル名で保存しましょう。
   

以下のコマンドを実行し、保存した「python-powerpoint-extract-movie.py」を実行します。

python python-powerpoint-extract-movie.py



コマンド実行後、スライドに埋め込まれたmp4などの動画がファイルとして保存された場合、正常に動画抜き出しができたと判断できます。
 

ちなみに、aspose.slidesを使った動画関連のプログラム例に関しては、以下の公式サイトに掲載されています。

>> Video Frame(公式サイト)


 

aspose.slidesライブラリを使うことで、パワーポイントから動画を簡単に抽出できます。



Pythonを使うことで、PowerPointから画像を自動で抽出できることを説明しました。このPythonを使うことで、あらゆる業務や作業を自動化できます。
その事例やヒントを知りたい方には、以下の本がオススメです。

 



ちなみに、上記教材の詳細なレビューに関しては、以下のサイトにまとめています。

>> 退屈なことはPythonにやらせようのレビュー


 

【まとめ】PythonでPowerPointから画像や動画を抽出


いかがでしたでしょうか?

上記で紹介した「python-pptxライブラリ」と「aspose.slidesライブラリ」を使うことで、PythonでPowerPointに埋め込まれた画像や動画を抽出できます。

最後にもう一度内容を確認しましょう。
 

【おさらい】
・Pythonでパワーポイントに埋め込まれた動画や画像を抜き出せる
・PowerPointから画像を抜き出したい場合python-pptxを使う
・PowerPointから動画を抜き出したい場合aspose.slidesを使う



本ブログでは、「業務の時短化に繋がるIT技術」や「クラウドやOSSの学び方」などを発信しています。定期的に更新していますので、ぜひブックマークをよろしくお願いいたします。

>> IT技術やその学び方を発信しているサイト「駆け出し物語」(本ブログ)
 

コメント