1

我正在一个允许用户上传图像的移动应用程序中工作。我使用 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 将客户端上传的图像作为文件路径或缓冲区提供给我。

当我获得文件路径时,我可以毫无问题地使用gexiv2.

当我得到一个图像缓冲区时,我无法直接使用 获取exif数据gexiv2,因为gexiv2需要文件路径参数来获取exif,所以我想暂时将图像缓冲区保存到磁盘。

将图像缓冲区保存到磁盘的最佳方法是什么?

4

1 回答 1

0

最后我得到了解决方案, https://stackoverflow.com/a/11813684/658976 这确认所有上传到服务器的图像都有文件路径(没有缓冲图像)。

于 2013-07-19T09:03:34.913 回答