Python 使用PIL在Django中上载、裁剪和保存图像
我正在尝试用django上传一个配置文件图像,并使用PIL在服务器端裁剪它。我编写了一个简单的函数,它将文件和裁剪区域作为参数,裁剪图像并返回 我遇到的问题是,返回的对象没有文件名,因此django不知道如何保存它。以下是django错误页面的描述(错误名为AttributeError):Python 使用PIL在Django中上载、裁剪和保存图像,python,django,image,python-imaging-library,naming,Python,Django,Image,Python Imaging Library,Naming,我正在尝试用django上传一个配置文件图像,并使用PIL在服务器端裁剪它。我编写了一个简单的函数,它将文件和裁剪区域作为参数,裁剪图像并返回 我遇到的问题是,返回的对象没有文件名,因此django不知道如何保存它。以下是django错误页面的描述(错误名为AttributeError): /Library/Python/2.6/site-packages/PIL/Image.py in\uuu getattr__ #numpy阵列接口支持 新={} shape,typestr=\u conv\
/Library/Python/2.6/site-packages/PIL/Image.py in\uuu getattr__
#numpy阵列接口支持
新={}
shape,typestr=\u conv\u type\u shape(self)
新的['shape']=形状
新建['typestr']=typestr
new['data']=self.tostring()
还新
提高属性错误(名称)。。。
##
#返回包含像素数据的字符串。
#
#@param encoder\u指定要使用的编码器。默认设置是
#使用标准的“原始”编码器。
▼ 局部变量
可变值
自己
名称“\u已提交”
您可以看到,如果直接从django上传,图像文件对象没有附加名称。我搜索了整个PIL文档和django文档,但没有找到任何可以为文件保存名称的内容(例如image.save(“filename.jpg”、“JPEG”)不起作用)。我希望将文件保存在内存中,如果可能的话,不必处理写入磁盘的问题
如果有必要,我可以附加额外的代码,但我认为/希望我只是缺少一些简单的Python代码。我知道有一些库可以使这对我来说更容易,但现在我只是想了解Python/django图像处理的基本原理。有什么想法吗?谢谢 您好bgmaster,如果您可以发布当前用于裁剪图像的代码,这将非常有帮助。好了,没有办法只将文件保存在内存中,但也许我们可以找到一个解决方法:)您好,bgmaster,如果您可以发布当前用于裁剪图像的代码,这将非常有帮助。好吧,没有办法只将文件保存在内存中,但也许我们可以找到一个解决方法:)
/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'