Estate atento porque en esta reseña vas a hallar la respuesta que buscas.
Solución:
Podrías usar la biblioteca de django redimensionada. Cambia el tamaño de las imágenes cuando se cargan y las almacena por usted.
Uso
from django_resized import ResizedImageField
class Posts(models.Model):
title = models.CharField(max_length=200, blank=True)
body = models.TextField(blank=True)
created_at = models.DateTimeField(default=datetime.datetime.now)
post_image = ResizedImageField(size=[500, 300], upload_to=get_image_path, blank=True, null=True)
def __str__(self):
return self.title
Opciones
- Talla – ancho y alto máximo, por ejemplo [640, 480]
- cultivo – cambiar el tamaño y recortar. [‘top’, ‘left’] – Esquina superior izquierda, [‘middle’, –
‘center’] es el centro de recorte, [‘bottom’, ‘right’] – recortar la esquina inferior derecha. - calidad – calidad de la imagen redimensionada 1..100
- keep_meta – mantener EXIF y otros metadatos, por defecto True
- force_format – forzar el formato de la imagen redimensionada, los formatos disponibles son los que admite la almohada, el valor predeterminado es Ninguno
**
Esto funcionará
** Primero que nada instale “PIL Fork” usando ‘pip install pillow
from PIL import Image
def __str__(self):
return self.title
def save(self, *args, **kwargs):
super(Posts, self).save(*args, **kwargs)
imag = Image.open(self.post_image.path)
if imag.width > 400 or imag.height> 300:
output_size = (400, 300)
imag.thumbnail(output_size)
imag.save(self.post_image.path)
class Meta:
verbose_name_plural = "Posts"
Reseñas y puntuaciones
¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)