使用PIL保存JPG格式

时间:2012-02-03 15:18:02

标签: django heroku jpeg python-imaging-library

我正在使用PIL制作我上传的图像的缩略图,并且PNG或GIF的一切都很好。但是,上传JPG让我很头疼。我一直得到一个无效的格式类型,然后我在PIL网站的JPG页面底部找到了这个......

  

注意:要启用JPEG支持,您需要构建和安装IJG   构建Python Imaging Library之前的JPEG库。见   发布README以获取详细信息。

无论如何,所以我部署到Heroku,由于某种原因它似乎不再给我无效的格式错误,我已经在我的本地... ...除非现在有一个照片对象住在数据库,我似乎无法访问它们。我将它们的位置放入图像标记中,但我不断获得图像链接符号。

以下是我的覆盖保存在模型中的样子:

def save(self, force_update=False, force_insert=False, thumb_size=(90,150)):
    image = Image.open(self.image)

    if image.mode not in ('L', 'RGB'):
        image = image.convert('RGB')
    # save the original size
    self.image_width, self.image_height = image.size

    image.thumbnail(thumb_size, Image.ANTIALIAS)

    # save the thumbnail to memory
    temp_handle = StringIO()

    image.save(temp_handle, format='JPEG')

    temp_handle.seek(0) # rewind the file
    # save to the thumbnail field
    suf = SimpleUploadedFile(os.path.split(self.image.name)[-1],
                            temp_handle.read(),
                            content_type='image/jpg')
    self.thumbnail.save(suf.name, suf, save=False)
    self.thumbnail_width, self.thumbnail_height = image.size


    #save the image object
    super(Photo, self).save(force_update, force_insert)

0 个答案:

没有答案