ユーザーが画像をアップロードできるモバイルアプリケーションで作業しています。これらの画像は、django バックエンドを使用して処理します。
リサイズした画像をサーバーに保存したい。
を使用して画像のサムネイルを作成しますが、画像PIL
のすべての exif データが失われます。サイズ変更された画像にexifデータを保存したい。
ライブラリを使用しgexiv2
て元の画像のexifデータをコピーし、サイズ変更された画像に保存しようとしています:
exif = GExiv2.Metadata(file_path)
exif データを保持するために、サイズを変更した画像をディスクに保存し、次のgexiv2
ファイル パスを使用します。
# exif of orginal image
exif = GExiv2.Metadata(file_path)
# exif of resized image
newExif = GExiv2.Metadata('img/512_c')
# save all exif data of orinal image to resized
for tag in exif.get_exif_tags():
newExif[tag] = exif[tag]
# edit exif data - size
newExif['Exif.Photo.PixelXDimension'] = str(im.size[0])
newExif['Exif.Photo.PixelYDimension'] = str(im.size[1]).
しかし、私の問題は、djangoがクライアントがアップロードした画像をファイルパスまたはバッファーとして提供することです。
ファイルパスを取得すると、元の画像のexifデータを取得するのに問題はありませんgexiv2
.
gexiv2
イメージ バッファを取得するとき、exif を取得するにはファイル パス パラメータが必要なため、exif データを直接取得することはできませんgexiv2
。そのため、イメージ バッファを一時的にディスクに保存したいと考えています。
画像バッファをディスクに保存する最良の方法は何ですか?