Django обновляет InMemoryUploadedFile с помощью Piexif

Я пытаюсь удалить данные exif из загруженного изображения, прежде чем продолжить обработку его перед сохранением на сервер.

Я использую piexif, как в этом ответе, чтобы удалить метаданные exif. Однако документация piexif.insert() требует указания пути к изменяемому изображению. Можно ли использовать piexif для записи в файл в памяти?

An InMemoryUploadedFile имеет name атрибут, который, кажется, указывает путь к файлу, однако он не работает должным образом.

def modifyAndSaveImage():
    # Get the uploaded image as an InMemoryUploadedFile
    i = form.cleaned_data['image']

    # Use piexif to generate an empty exif byte dump
    exif_bytes = piexif.dump({})
    piexif.insert(exif_bytes, i._name)  # What should the second parameter be?

    # continue using i...

0 ответов

Если вы загрузите файл с PIL и сохраните его, он лишит EXIF;

from PIL import Image

image = Image.open(form.cleaned_data['image'])

image.save('my_images/image.jpg')

Если у вас есть проблема с какими-либо данными, вы также можете попробовать создать полностью новый образ, подобный этому;

from PIL import Image

image = Image.open(form.cleaned_data['image'])

image_data = list(image.getdata())

new_image = Image.new(image.mode, image.size)
new_image.putdata(image_data)
new_image.save('my_images/image.jpg')

документы по Imageнаходятся здесь

Другие вопросы по тегам