Django-将格式为.tif和conver的图像上载到JPEG的方法

Django-将格式为.tif和conver的图像上载到JPEG的方法,django,image,Django,Image,我是django的新手,我需要开发一个函数来上传.tif格式的图像。我需要将图像转换为JPEG,同时我想保存原始图像,这意味着两种图像类型将保存在同一目录中。我可以使用的正确方法是什么?首先将文件上载到服务器。然后使用PIL from PIL import Image img = Image.open('image.tiff') #image.tiff from request.FILES img.save('image.jpg', "JPEG") 您可以在此处找到接受上载文件的django项

我是django的新手,我需要开发一个函数来上传.tif格式的图像。我需要将图像转换为JPEG,同时我想保存原始图像,这意味着两种图像类型将保存在同一目录中。我可以使用的正确方法是什么?

首先将文件上载到服务器。然后使用
PIL

from PIL import Image
img = Image.open('image.tiff') #image.tiff from request.FILES
img.save('image.jpg', "JPEG")

您可以在此处找到接受上载文件的django项目示例:

PIL(Python图像库)已经死了。但是,您可以使用一个主动维护的fork来代替它

您可以通过pip获得枕头,如下所示:

pip install Pillow
import os
from PIL import Image
example_path_to_tif = 'saved_files/test.tif'
corresponding_jpeg_path = os.path.join(os.path.splitext(example_path_to_tif)[0], '.jpeg')
im = Image.open(example_path_to_tif)
im.save(corresponding_jpeg_path , "JPEG")
您可以使用Pillow将保存的tif文件转换为jpeg,如下所示:

pip install Pillow
import os
from PIL import Image
example_path_to_tif = 'saved_files/test.tif'
corresponding_jpeg_path = os.path.join(os.path.splitext(example_path_to_tif)[0], '.jpeg')
im = Image.open(example_path_to_tif)
im.save(corresponding_jpeg_path , "JPEG")

这会将jpeg保存到tif所在的同一目录中,并具有相同的文件名(但扩展名不同)。

我应该将代码放在哪里。。在views.py或models.py中,我发现错误“function”对象没有属性“rfind”@IamMoon——这可以在views.py或models.py中出现。如果您刚刚开始,将逻辑放在views.py中可能会更简单,但随着时间的推移,您可能会发现将更改状态的逻辑放在models.py中,并将views.py中的代码专用于在开始时解释输入,并在返回前格式化输出(中间调用model code)。