1
我正在使用移動應用程序,允許用戶上傳圖像。我使用django後端處理這些圖像。保存exif數據,同時調整圖像大小
我想在服務器中保存調整大小的圖像。
我使用PIL
創建圖像的縮略圖,但圖像的所有exif數據都會丟失。我想保存調整大小的圖像中的exif數據。
我試圖使用gexiv2
庫複製原圖的EXIF數據,並將其保存到調整後的圖像:
exif = GExiv2.Metadata(file_path)
要presrve 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的給我的客戶端上傳的圖片既可以作爲文件路徑 或作爲緩衝。
當我得到文件路徑時,我沒有問題使用gexiv2
獲取原始圖像的exif數據。
當我得到的圖像緩衝區,我不能直接獲得使用gexiv2
EXIF數據,因爲gexiv2
需要的文件路徑參數,以獲得EXIF,所以我想暫時保存圖像緩存到磁盤。
將圖像緩衝區保存到磁盤的最佳方法是什麼?