将图像PIL对象从视图传递到其他视图djang

2024-06-24 13:11:29 发布

您现在位置:Python中文网/ 问答频道 /正文

如何将PIL Image对象从一个视图定义传递到另一个视图定义?可以使用reverse()函数。我想在imageSizeConverter视图上显示更改后的图像而不保存。我的代码是

def imageSizeConverter(request):
    if request.method == 'POST':
        item = request.FILES.get('imgInp')
        width = int(request.POST.get('width'))
        height = int(request.POST.get('height'))
        proportion = request.POST.get('proportion')

        root = tk.Tk()
        root.withdraw()
        file_path = filedialog.askdirectory()
        name = request.POST.get('fname')
        print(file_path)
        img = Image.open(item)

        if(proportion == 'on'):
            img.thumbnail((width, height))
        else:
            img.resize((width, height))
        resultFileName, file_extension = os.path.splitext(name)
        if not file_extension:
            filename, file_extension = os.path.splitext(item.name)
        nazwa = file_path + "/" + resultFileName + file_extension
        img.save(nazwa)

        return render(request, "app/imageSizeConverter.html", 
                      {
                          'title':'Zmiana rozmiaru',
                          'year':datetime.now().year,
                          'image': reverse('show_image')
                      })  

def show_image(request):
    response = HttpResponse(content_type="image/png")
    img.save(response, "PNG")
    return response

编辑

这是解决我问题的方法:

^{pr2}$

并在模板上使用:

<img src="{{ image }}" alt=""/>

Tags: pathimage视图imggetifrequestextension