Skip to content

Instantly share code, notes, and snippets.

@alexphelps
Last active October 1, 2015 06:44
Show Gist options
  • Save alexphelps/b8b2813c19c689484680 to your computer and use it in GitHub Desktop.
Save alexphelps/b8b2813c19c689484680 to your computer and use it in GitHub Desktop.
Django Dynamic Logo Resize and Background Fill
from PIL import Image
from django.db import models
from django.conf import settings
from imagekit import ImageSpec, register
from imagekit.models import ImageSpecField
from imagekit.processors import ResizeToFit
class LogoProcessor(ImageSpec):
format = 'JPEG'
options = {'quality': 90}
@property
def processors(self):
logoimage = self.source
image = Image.open(logoimage)
rgb_image = image.convert('RGB')
background_color = rgb_image.getpixel((1, 1))
if background_color == (0, 0, 0):
background_color = (255,255,255)
return [ResizeToFit(300, 300,mat_color=(background_color))]
register.generator('logo_processor', LogoProcessor)
class Company(models.Model):
logo = models.ImageField(upload_to=settings.MEDIA_ROOT,default='')
logo_thumb = ImageSpecField(
source='logo',
id='logo_processor'
)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment