如何使用PIL在django中创建缩略图

如何使用PIL在django中创建缩略图,django,python-imaging-library,Django,Python Imaging Library,我试图在保存django模型时创建一组调整大小的图像。但是我在保存模型时出错了- cannot identify image file <cStringIO.StringI object at 0x104558e88> 试图打开pil映像时引发错误- im = Image.open(StringIO(original_image_field.read())) 如果要添加图像版本控制,我建议使用。这是一个例子 from django.db import models from im

我试图在保存django模型时创建一组调整大小的图像。但是我在保存模型时出错了-

cannot identify image file <cStringIO.StringI object at 0x104558e88>
试图打开pil映像时引发错误-

im = Image.open(StringIO(original_image_field.read()))

如果要添加图像版本控制,我建议使用。这是一个例子

from django.db import models
from imagekit.models import ImageSpecField
from imagekit.processors import ResizeToFill

class Profile(models.Model):
    avatar = models.ImageField(upload_to='avatars')
    avatar_thumbnail = ImageSpecField(source='avatar',
                                      processors=[ResizeToFill(100, 50)],
                                      format='JPEG',
                                      options={'quality': 60})
你的情况是这样的

class ProductImage(models.Model):
    extra_large_image = models.ImageField(upload_to='catalog/images',
                                          blank=True, null=True)
    main_image = ImageSpecField(source="extra_large_image",
                                processors=[ResizeToFill(460, 460)],
                                format='JPEG',
                                          options={'quality': 60})
    list_page_thumb = ImageSpecField(source="extra_large_image",
                                     processors=[ResizeToFill(460, 460)],
                                     format='JPEG',
                                     options={'quality': 60})
class ProductImage(models.Model):
    extra_large_image = models.ImageField(upload_to='catalog/images',
                                          blank=True, null=True)
    main_image = ImageSpecField(source="extra_large_image",
                                processors=[ResizeToFill(460, 460)],
                                format='JPEG',
                                          options={'quality': 60})
    list_page_thumb = ImageSpecField(source="extra_large_image",
                                     processors=[ResizeToFill(460, 460)],
                                     format='JPEG',
                                     options={'quality': 60})