various image related fixes

This commit is contained in:
vabene1111 2019-12-26 12:06:18 +01:00
parent b6a04b9dbd
commit 38bfb96b46
2 changed files with 16 additions and 19 deletions

View File

@ -1,8 +1,5 @@
from io import BytesIO
from PIL import Image
from django.contrib.auth.models import User from django.contrib.auth.models import User
from django.core.files import File
from django.db import models from django.db import models
@ -73,20 +70,6 @@ class Recipe(models.Model):
def __str__(self): def __str__(self):
return self.name return self.name
def save(self, *args, **kwargs):
if self.image:
img = Image.open(self.image)
basewidth = 720
wpercent = (basewidth / float(img.size[0]))
hsize = int((float(img.size[1]) * float(wpercent)))
img = img.resize((basewidth, hsize), Image.ANTIALIAS)
im_io = BytesIO()
img.save(im_io, 'JPEG', quality=70)
self.image = File(im_io, name=(str(self.pk)+'.jpeg'))
super().save(*args, **kwargs)
@property @property
def all_tags(self): def all_tags(self):
return ' '.join([(x.icon + x.name) for x in self.keywords.all()]) return ' '.join([(x.icon + x.name) for x in self.keywords.all()])

View File

@ -1,9 +1,12 @@
import os import os
from io import BytesIO
import simplejson as json import simplejson as json
from PIL import Image
from django.contrib import messages from django.contrib import messages
from django.contrib.auth.decorators import login_required from django.contrib.auth.decorators import login_required
from django.contrib.auth.mixins import LoginRequiredMixin from django.contrib.auth.mixins import LoginRequiredMixin
from django.core.files import File
from django.http import HttpResponseRedirect from django.http import HttpResponseRedirect
from django.shortcuts import redirect, get_object_or_404, render from django.shortcuts import redirect, get_object_or_404, render
from django.urls import reverse_lazy, reverse from django.urls import reverse_lazy, reverse
@ -50,7 +53,18 @@ def internal_recipe_update(request, pk):
if form.cleaned_data['image']: if form.cleaned_data['image']:
recipe.image = form.cleaned_data['image'] recipe.image = form.cleaned_data['image']
else:
img = Image.open(recipe.image)
basewidth = 720
wpercent = (basewidth / float(img.size[0]))
hsize = int((float(img.size[1]) * float(wpercent)))
img = img.resize((basewidth, hsize), Image.ANTIALIAS)
im_io = BytesIO()
img.save(im_io, 'JPEG', quality=70)
recipe.image = File(im_io, name=(str(recipe.pk) + '.jpeg'))
elif 'image' in form.changed_data and form.cleaned_data['image'] is False:
recipe.image = None recipe.image = None
recipe.save() recipe.save()