【Python入門】Pillow×piexifでJPEG画像のExif情報を削除プライバシー対策 | スクラムとは 仕事が進まなく技術力もないリーダーのごっこ遊び

【Python入門】Pillow×piexifでJPEG画像のExif情報を削除プライバシー対策

スマホやデジカメで撮影したJPEG画像には、撮影時の設定や位置情報などの「Exif(エグジフ)情報」が含まれています。Exifを消すことでデータのプライバシーを守ることも可能です。Pythonは、このExif情報を簡単に削除できる強力なライブラリとして「Pillow」と「piexif」があります。

この記事では、Python初心者でも理解できるように、Pillowとpiexifを使ってJPEG画像からExif情報削除する方法をわかりやすく解説します。

 


そもそもExif情報ってなに?

Exif(Exchangeable Image File Format)とは、画像ファイル(主にJPEG)に記録される撮影データのことです。主な情報は以下のとおり:

  • カメラのメーカー(Make)

  • カメラのモデル(Model)

  • 撮影日時

  • GPS位置情報(緯度・経度)

  • 露出時間やISO感度などの撮影条件

  • 写真の解像度(幅・高さ)

この情報は、写真管理・地図表示・機械学習の前処理など、さまざまな用途に活用されていますが、同時にプライバシー漏洩のリスクもあります。


使用ライブラリ:Pillow & piexif

PythonでExif情報を読み書きするには以下の2つのライブラリが非常に便利です:

  • Pillow:Python Imaging Library(PIL)の後継。画像の読み込み・表示・サイズ取得などを担当。

  • piexif:Exif情報の読み取り・書き込み・削除に特化したライブラリ。

インストール方法は下記の前回記事をご覧ください。

Exif情報を削除する(プライバシー対策)

SNSやブログに画像をアップする前に、GPS位置情報などのExifデータを完全に削除する方法は下記コードです。

from PIL import Image
import piexif

def remove_exif(input_path, output_path):
    img = Image.open(input_path)
    exif_bytes = piexif.dump({})  # 空のExifを生成
    img.save(output_path, exif=exif_bytes)

# 使用例
remove_exif("input.jpg", "output_no_exif.jpg")

この処理で削除される主な情報

  • GPS位置情報(緯度・経度)

  • 撮影日時

  • カメラ機種・メーカー情報

  • その他の全Exifメタデータ

注意点

  • JPEG形式限定(PNGなどはExifを持たない)

  • img.save(..., exif=exif_bytes) を忘れるとExifが残ることもある


SNSに画像を投稿する前の必須ステップ!

スマホや一眼レフで撮った写真には、意外と多くの個人情報が含まれています。とくにGPS情報は、自宅や訪れた場所が特定されるリスクがあるため、SNS投稿や共有前にはExif削除が推奨されます。

Pythonで自動化しておけば、安全・効率的に画像処理ができます!


まとめ:Exif情報の「取得」も「削除」もPythonでスマートに!

Pillowとpiexifを組み合わせれば、Pythonで簡単に画像のExif情報を読み取り・削除することができます。位置情報やカメラの機種名などの取得は、写真整理やデータ分析に役立ち、削除はプライバシー対策として非常に有効です。