Django, загрузка изображений в формате tif

Я пытаюсь загрузить изображение в формате tif (в оттенках серого), используя django ImageField. Я установил Pillow==8.3.1 и использую Python 3.9. Приложение работает только с изображениями PNG/JPEG.

Вот модель, которую я использую:

class Upload(models.Model):
    image = models.ImageField(upload_to='images')
    title = models.CharField(max_length=200)
    action = models.CharField(max_length=50,choices=ACTION_CHOICES)
    updated = models.DateTimeField(auto_now=True)
    created = models.DateTimeField(auto_now_add=True)
    def __str__(self):
        return self.title
        #breakpoint()
    # def __str__(self):
    #     pixels = tfi.imread(self.image)
    #     return np.shape(np.array(pixels))
    def save(self,*args,**kwargs):
        #open image
        #breakpoint()
        if self.action=='tif':
            pixels = tfi.imread(self.image)
        else:
            pixels = Image.open(self.image)
       
        #pixels = tfi.imread(self.image)
        pixels = np.array(pixels)
        pixels=pixels[:,:,0]
        #pixels = pixels[0,:,:]
        #use the normalisation method
        img = get_image(pixels)
        im_pil=Image.fromarray(img)
        #save
        buffer = BytesIO()
        im_pil.save(buffer,format='png')
        image_png = buffer.getvalue()
        self.image.save(str(self.image), ContentFile(image_png),save=False)
        super().save(*args,**kwargs)
        #return self.image_png

Для работы ImageField в Django требуется сторонний пакет Pillow. Он зависит от pillow для проверки того, является ли файл изображением или нет. Это зависит не от типа файла, а от содержимого самого файла. Пожалуйста, проверьте версию используемого вами pillow и ознакомьтесь с соответствующей документацией по вашей версии pillow.

https://pypi.org/project/Pillow/

поддерживаемый формат изображения подушкой 8.3.1

но если все же что-то не работает, вы всегда можете использовать FileField, который не ищет, какой файл или формат вы загружаете, пока вы не загрузите файл, пожалуйста, ознакомьтесь с документацией

https://www.geeksforgeeks.org/filefield-django-models/

хотя я бы рекомендовал вам использовать imagefield только для изображений и прочитать документацию теперь это полностью зависит от вас, что вы хотите использовать и скажите мне, если вы все еще получаете любую другую ошибку, то я рад помочь

Вернуться на верх