使用PIL在Django上载,裁剪和保存图像

时间:2012-09-05 19:02:56

标签: python django image python-imaging-library naming

我正在尝试在django中上传个人资料图片,并使用PIL在服务器端裁剪它。我写了一个简单的函数,它将文件和裁剪区域作为参数,裁剪图像并返回它。

我遇到的问题是返回的对象没有文件名,因此django不知道如何保存它。以下是来自django错误页面的描述(AttributeError(name)是调用的错误):

/Library/Python/2.6/site-packages/PIL/Image.py in __getattr__
        # numpy array interface support
        new = {}
        shape, typestr = _conv_type_shape(self)
        new['shape'] = shape
        new['typestr'] = typestr
        new['data'] = self.tostring()
        return new
    raise AttributeError(name) ...
##
# Returns a string containing pixel data.
#
# @param encoder_name What encoder to use.  The default is to
#    use the standard "raw" encoder.
▼ Local vars
Variable    Value
self        <PIL.Image.Image image mode=RGB size=300x300 at 0x101FCACF8> 
name    '_committed'

您可以看到图像文件对象没有附加名称,就像通常直接从django上传一样。我在整个PIL文档和django文档中进行了搜索,但没有提出任何保存文件名称的内容(例如,image.save(“filename.jpg”,“JPEG”)不起作用)。我想将文件保存在内存中,如果可能的话,不必处理写入磁盘的问题。

如果需要,我可以附加额外的代码,但我想/希望我只是缺少一些简单的Python。我知道有些库可以让我更容易,但是现在我只是想用Python / django来理解图像处理的基础知识。有任何想法吗?谢谢!

0 个答案:

没有答案