我正在使用 django non-rel for appengine (djangoappengine) 并且有一个应用程序,用户在其中选择图像,我必须从所选图像返回裁剪。
我的应用程序中的图像按照django-filetransfers 指令上传到 Blobstore 。我已经设法上传(甚至下载)文件就好了。
我遇到的问题是,一旦图像被裁剪,我不知道如何在模板中显示图像。
我的观点的(简化)代码如下:
def canvas_size(request):
if request.method == 'POST':
#some code here
else:
#At this point the user has selected an image, and I store its pk in session
img_file = ImageModel.objects.get(pk=request.session[SESSION_KEY]['image_pk'])
img = images.Image(blob_key=str(img_file.file.file.blobstore_info.key()))
img.resize(height=300)
img.crop(left_x=0.0, top_y=0.0, right_x=0.5, bottom_y=1.0)
crop_img = img.execute_transforms(output_encoding=images.JPEG)
#I know that the image is being cropped because if I do
#print crop_img
#I get to see the image in browser
response_dict = {
'crop_img' : crop_img,
}
template_name = 'canvas/step7.html'
response = render_to_response(template_name, response_dict, context_instance=RequestContext(request))
return response
在 canvas/step7.html 我尝试了以下内容:
<img src="{{ crop_img.url }}" />
<img src="{{ crop_img.file.url }}" />
但这当然行不通。
根据Google AppEngine Image documentation,我知道 execute_transforms() 函数将图像的编码表示形式作为字符串返回。所以我想我错过了将字符串转换为文件的步骤......也许?
有人可以指出我正确的方向以便使用 django 在模板中显示裁剪吗?
谢谢你的帮助!