
Comprimir imagem para web
Uma das coisas que mais se fala é sobre espaço em servidores, sabemos que espaço em servidores ta cada vez mais alto e para minimizar tudo isso aqui vai um script para comprimir imagens antes de salvar em um determinado servidor sem perder qualidade.
O Script é simples mais eficaz para deixar imagens leves.
#-*-coding: utf-8-*-
import PIL
from PIL import Image
import StringIO
from django.core.files.uploadedfile import InMemoryUploadedFile
def compress(path, photo):
image = PIL.Image.open(StringIO.StringIO(photo.read())).convert('RGB')
wsize, hsize = image.size
image = image.resize((wsize, hsize), PIL.Image.ANTIALIAS)
output = StringIO.StringIO()
image.save(output, format='JPEG', quality=80, optimize=True, progressive=True)
output.seek(0)
return InMemoryUploadedFile(output, 'ImageField', "%s.jpeg" % photo.name.split('.')[0], 'image/jpeg', output.len, None)