【5分でわかる】PythonでPowerPointをPNGへ画像変換する方法

 

【悩み】
・PowerPointの起動が遅い!スライドを画像化して確認すればいいか。
・数百個のPowerPointファイルがある。全て自動で画像変換したい。
・Pythonを使えば大量のPowerPointをPNGやJPG画像に容易に変換できる?



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

【本記事の内容】
① PowerPointをPNGなどの画像に変換できるPythonライブラリ
➁ ライブラリインストールなどの準備
➂ PowerPointをPNG画像に変換
④ PowerPointをJPG画像に変換
⑤ PowerPointを画像変換する際の注意点と補足



本記事に掲載した手順を実践したことで、5分以内でパワーポイントの各スライドをPNG画像に変換できました(下の動画参照)。
 



記事の前半では「PowerPointを画像変換するために必要なPythonライブラリのインストール方法」を解説します。

記事の後半では「PNGやJPG(JPEG)画像に変換するプログラム」を紹介します。
 

この記事を読み終えることで、「お手元にあるPowerPointを開かずに各スライドをPNGやJPEG形式の画像に変換できる」状態になります。
 

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

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


 

PowerPointをPNGなどの画像に変換できるPythonライブラリ


PythonでPowerPointの各スライドをPNGなどの画像に変換したい場合、「aspose.slides」ライブラリを使います。

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

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

 

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


 

ライブラリインストールなどの準備


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

【流れ】
手順1:Pythonのインストール
手順2:aspose.slidesライブラリのインストール



以降で、上記の各項目を説明します。
 

Pythonのインストール

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

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

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

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

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

 

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

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

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


 

以降で、aspose.slidesを使ってPowerPointの各スライドをPNGやJPG形式の画像に変換するプログラム例を紹介します。


 

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


 

PowerPointをPNG画像に変換


PowerPointの各スライドをPNG画像に変換するプログラムは、以下となります。適宜変更部分は自分用に書き換えてください。

import aspose.slides as slides
import aspose.pydrawing as drawing

# パワーポイントの読み込み
pres = slides.Presentation("./sample.pptx") # 適宜変更

# スライドごとに繰り返す
for index in range(pres.slides.length):
    slide = pres.slides[index]

    # PNG形式の画像でファイル保存
    slide.get_thumbnail(1, 1).save("./slide_{i}.png".format(i = index), drawing.imaging.ImageFormat.png)

print('変換できました。')



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

【PNG画像変換の関数リファレンス】
・書き方
 get_thumbnail(横, 縦).save(名称, drawing.imaging.ImageFormat.png)
・処理
 対象スライドを指定したサイズで画像変換しPNGファイルで保存
・例
 get_thumbnail(1,1)であれば、スライドと同じサイズで保存
 get_thumbnai(0.5,0.5)であれば、スライドの縦横を1/2比率にして保存



以下のコマンドを実行し、保存したプログラムを実行します。

python python-powerpoint-png-convert.py



コマンド実行後、各スライドのPNG画像が生成された場合、正常にPowerPointをPNG形式の画像に変換できたと判断できます。
 

ちなみに、上記プログラムは、ファイル拡張子「ppt」でも正常動作します。

また、生成画像の縦幅や横幅を指定もできます。具体的なプログラムは、以下のaspose.slidesの公式ブログを参照してください。

>> 指定した縦幅と横幅で画像変換(公式ブログ)
 

aspose.slidesライブラリを使うことで、パワーポイントの各スライドをPNG形式の画像に簡単に変換できます。


 

PowerPointをJPG(JPEG)画像に変換


PowerPointの各スライドをJPG画像に変換するプログラムは、以下となります。適宜変更部分は自分用に書き換えてください。

import aspose.slides as slides
import aspose.pydrawing as drawing

# パワーポイントの読み込み
pres = slides.Presentation("./test.ppt") # 適宜変更

# スライドごとに繰り返す
for index in range(pres.slides.length):
    # Get reference of slide
    slide = pres.slides[index]

    # JPG形式の画像でファイル保存
    slide.get_thumbnail(0.3, 0.3).save("./slide_{i}.jpg".format(i = index), drawing.imaging.ImageFormat.jpeg)

print('変換できました。')



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

【JPG画像変換の関数リファレンス】
・書き方
 get_thumbnail(横, 縦).save(名称, drawing.imaging.ImageFormat.jpeg)
・処理
 対象スライドを指定したサイズで画像変換しJPGファイルで保存



以下のコマンドを実行し、保存したプログラムを実行します。

python python-powerpoint-jpg-convert.py



コマンド実行後、各スライドのJPG画像が生成された場合、正常にPowerPointをJPG形式の画像に変換できたと判断できます。
 

aspose.slidesライブラリを使うことで、パワーポイントの各スライドをJPG形式の画像に簡単に変換できます。


 

PowerPointを画像変換する際の注意点と補足


今回ご紹介したPythonでPowerPointを画像変換の注意点と補足として以下があります。
 

・画像の縦幅と横幅を関数に指定できない
・画像からPowerPointには変換できない
・特定スライドのみ画像変換もできる
・フォルダ内の全PowerPointファイルを画像変換



以降で、上記に関して解説します。
 

画像の縦幅と横幅を関数に指定できない

get_thumbnail関数には、画像の縦幅と横幅を指定できません。

例えば、PowerPointを1200×800の画像サイスに変換したい場合、以下のように指定します。

width = 1200
hight = 800

# 比率を計算
scale_width = (1.0 / pres.slide_size.size.width) * width
scale_hight = (1.0 / pres.slide_size.size.height) * hight

# 計算した比率を指定
image = slide.get_thumbnail(scale_width, scale_hight)


 

画像からPowerPointには変換できない

get_thumbnail関数を使うことで、PowerPointをPNGやJPG形式の画像に変換できます。一方で、画像からPowerPointに簡単に変換できるような関数は用意されていません。


 

特定スライドのみ画像変換もできる

以下のプログラム実行により、特定スライドのみ画像変換もできます。

import aspose.slides as slides
import aspose.pydrawing as drawing

# パワーポイントの読み込み
pres = slides.Presentation("./sample.pptx") # 適宜変更

# 指定したスライド番号のみを画像変換
slide = pres.slides[1]

# PNG形式の画像でファイル保存
slide.get_thumbnail(1, 1).save("./slide_{i}.png".format(i = index), drawing.imaging.ImageFormat.png)



上記のプログラム実行により、2枚目のスライドのみをPNG形式の画像に変換できます。

 

フォルダ内の全PowerPointファイルを画像変換

以下のプログラム実行により、あるフォルダ内にあるPowerPoint全てに対して画像変換できます。

import aspose.slides as slides
import aspose.pydrawing as drawing
import glob
import os

# フォルダ内にあるファイル一覧を取得
files = glob.glob(r"C:\Users\user\Desktop\work\tmp\fess\document\*")

for file in files:
    # ファイル名を取得
    basename = os.path.basename(filepath)

    # 拡張子がpptx以外は無視
    if 'pptx' not in basename:
      continue

    # パワーポイントの読み込み
    pres = slides.Presentation(file)

    # スライドごとに繰り返す
    for index in range(pres.slides.length):
        slide = pres.slides[index]

        # PNG形式の画像でファイル保存
        slide.get_thumbnail(1, 1).save(basename + "_slide_{i}.png".format(i = index), drawing.imaging.ImageFormat.png)


 

以上が、筆者が実際に使ってみて注意するべき点だと感じた部分でした。本ライブラリを使うことで簡単に画像変換できるのでぜひ使ってみてください。



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

 



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

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


 

【まとめ】PythonでPowerPointをPNGへ画像変換する方法


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

上記で紹介した「aspose.slidesライブラリ」を使うことで、PythonでPowerPointの各スライドをPNGやJPG形式の画像に変換できます。

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

【おさらい】
・aspose.slidesを使うことでスライドを画像に変換できる
・get_thumbnail関数を使うことでPowerPointを画像変換できる
・get_thumbnail関数の引数には具体的なサイズではなく比率を指定する



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

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

コメント