【问题标题】:How to save the generated image from Django ImageKit to ImageField?如何将生成的图像从 Django ImageKit 保存到 ImageField?
【发布时间】:2018-06-07 05:37:22
【问题描述】:

我使用以下代码生成图像:

source_file = open('/path/to/myimage.jpg', 'rb')
image_generator = Thumbnail(source=source_file)
result = image_generator.generate()

将生成的“结果”保存回 django ImageField 的正确方法是什么?即在模型中 生成的结果似乎是一个 _io.BytesIO 对象。看来我无法直接将其保存到 ImageField。

任何帮助将不胜感激

【问题讨论】:

  • 您可以为此使用PIL.Imageimg = Image.open(result)

标签: django image django-models imagefield django-imagekit


【解决方案1】:

假设您有一个SampleModel,如下所示,

class SampleModel(models.Model):
    image = models.ImageField(null=True)


然后,ContentFile 为您施展魔法。跟着sn-p,

from django.core.files.base import ContentFile

source_file = open('/path/to/myimage.jpg', 'rb')
image_generator = Thumbnail(source=source_file)
result = image_generator.generate()
# additional snippet
django_file = ContentFile(result.getvalue())
sample = SampleModel.objects.create()
sample.image.save('sample_name.jpg', django_file)
sample.save()

【讨论】:

    猜你喜欢
    • 2015-03-30
    • 2018-08-10
    • 2012-02-08
    • 2011-12-15
    • 2013-02-13
    • 1970-01-01
    • 2010-11-05
    • 2010-11-21
    • 1970-01-01
    相关资源
    最近更新 更多