スマホやデジカメで撮影した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情報を読み取り・削除することができます。位置情報やカメラの機種名などの取得は、写真整理やデータ分析に役立ち、削除はプライバシー対策として非常に有効です。
