2013-07-01 50 views
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,所以我想暫時保存圖像緩存到磁盤。

將圖像緩衝區保存到磁盤的最佳方法是什麼?

回答

相關問題