diff --git a/rowers/.#rows.py b/rowers/.#rows.py new file mode 100644 index 00000000..1906d056 --- /dev/null +++ b/rowers/.#rows.py @@ -0,0 +1 @@ +E408191@CZ27LT9RCGN72.21668:1516641451 \ No newline at end of file diff --git a/rowers/rows.py b/rowers/rows.py index 20750819..322ec57b 100644 --- a/rowers/rows.py +++ b/rowers/rows.py @@ -72,15 +72,35 @@ def must_be_csv(value): def handle_uploaded_image(i): import StringIO - from PIL import Image, ImageOps + from PIL import Image, ImageOps, ExifTags import os from django.core.files import File image_str = "" - for c in i.chunks(): - image_str += c - imagefile = StringIO.StringIO(image_str) - image = Image.open(imagefile) + for chunk in i.chunks(): + image_str += chunk + imagefile = StringIO.StringIO(image_str) + + + image = Image.open(i) + + try: + for orientation in ExifTags.TAGS.keys(): + if ExifTags.TAGS[orientation]=='Orientation': + break + exif=dict(image._getexif().items()) + print exif[orientation],'aap' + + if exif[orientation] == 3: + image=image.rotate(180, expand=True) + elif exif[orientation] == 6: + image=image.rotate(270, expand=True) + elif exif[orientation] == 8: + image=image.rotate(90, expand=True) + except (AttributeError, KeyError, IndexError): + # cases: image don't have getexif + pass + if image.mode not in ("L", "RGB"): image = image.convert("RGB") @@ -89,12 +109,12 @@ def handle_uploaded_image(i): hsize = int((float(image.size[1])*float(wpercent))) image = image.resize((basewidth,hsize), Image.ANTIALIAS) - filename = hashlib.md5(imagefile.getvalue()).hexdigest()+'.jpg' filename2 = os.path.join('static/plots/',filename) image.save(filename2,'JPEG') + return filename,filename2 diff --git a/rowers/views.py b/rowers/views.py index eabc67fe..d175392b 100644 --- a/rowers/views.py +++ b/rowers/views.py @@ -8898,7 +8898,7 @@ def workout_uploadimage_view(request,id): url = reverse(r.defaultlandingpage, kwargs = {'id':id}) if is_ajax: - return JSONResponse({'result':1,'url':0}) + return JSONResponse({'result':1,'url':url}) else: return HttpResponseRedirect(url) else: diff --git a/temporary b/temporary new file mode 100644 index 00000000..e6e80ce6 Binary files /dev/null and b/temporary differ