Найти - Пользователи
Полная версия: Загрузка gif через POST
Начало » Django » Загрузка gif через POST
1
barabansheg
Доброго времени суток!
Возникла проблема. Нужно загрузить через POST gif анимацию. Если с простыми картинками все понятно, там это разруливается с помощью PIL:
img = request.FILES['image']
im = Image.open(img)
path = '/media_path/'
name = 'img_name'
im.save(path+name)
С gif такое не прокатывает, так как не сохраняется анимация.
Попробовал images2gif. Но ему нужен не сам request.FILES, а строка - путь до картинки. Пытаюсь сделать следующее:
 destination = open(settings.MEDIA_ROOT+'tmp/tmp.gif', 'wb+')
 for chunk in img.chunks():
      destination.write(chunk)
 frames = images2gif.readGif(settings.MEDIA_ROOT+'tmp/tmp.gif', False) 
 images2gif.writeGif(path+name, frames)

Но когда он пытается прочитать гифк(images2gif.readGif), то говорит:
“image file is truncated (127 bytes not processed)”
Хотя размеры исходного и загруженного файлов совпадают
Как можно решить проблему?
——-
С загрузкой проблему решил немного переписав саму функцию readGif, но теперь оно не записывает, ругается на “image has wrong mode”
nnmware
Если вопрос стоит только в загрузке файла, зачем использовать PIL? Судя по коду никаких манипуляций с картинкой вы не делаете.
img = request.FILES['image']
path = 'media_path'
name = 'img_name'
file = open(os.path.join(path, name), "wb+")
for chunk in img.chunks():
      file.write(chunk)
file.close()
barabansheg
Спасибо огромное! Чет не подумал:)
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB