def clean(self): # autogenerate slug if necessary slug = self.cleaned_data.get('slug') image = self.cleaned_data.get('image') if image and not slug: self.cleaned_data['slug'] = slugify(nameof(image.name))[:20] return forms.ModelForm.clean(self)
def resize(input, max_size, hq): if hq: name = '@%ix%i.png' % max_size else: name = '@%ix%i.jpg' % max_size name = nameof(input) + name relpath = THUMBS_PATH + name output_file = settings.MEDIA_ROOT + relpath output_url = settings.MEDIA_URL + relpath if not exists(dirname(output_file)): makedirs(dirname(output_file)) if not exists(output_file) or getmtime(output_file) < getmtime(input): image = Image.open(input) image = image.convert('RGBA') if hq: image.thumbnail(max_size, Image.BICUBIC) image.save(output_file, 'PNG') else: image.thumbnail(max_size, Image.ANTIALIAS) image.save(output_file, 'JPEG', quality=85) return output_url