【悩み】
・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を使った動画関連のプログラム例に関しては、以下の公式サイトに掲載されています。
aspose.slidesライブラリを使うことで、パワーポイントから動画を簡単に抽出できます。
Pythonを使うことで、PowerPointから画像を自動で抽出できることを説明しました。このPythonを使うことで、あらゆる業務や作業を自動化できます。
その事例やヒントを知りたい方には、以下の本がオススメです。
ちなみに、上記教材の詳細なレビューに関しては、以下のサイトにまとめています。
【まとめ】PythonでPowerPointから画像や動画を抽出
いかがでしたでしょうか?
上記で紹介した「python-pptxライブラリ」と「aspose.slidesライブラリ」を使うことで、PythonでPowerPointに埋め込まれた画像や動画を抽出できます。
最後にもう一度内容を確認しましょう。
【おさらい】
・Pythonでパワーポイントに埋め込まれた動画や画像を抜き出せる
・PowerPointから画像を抜き出したい場合python-pptxを使う
・PowerPointから動画を抜き出したい場合aspose.slidesを使う
本ブログでは、「業務の時短化に繋がるIT技術」や「クラウドやOSSの学び方」などを発信しています。定期的に更新していますので、ぜひブックマークをよろしくお願いいたします。
コメント