Example #1
0
def _rotate_photo(meeting, person):
    photo = person.decoded_data.get('photo')
    app = flask.current_app
    if photo:
        file_path = app.config['UPLOADED_PHOTOS_DEST'] / photo
        file_output_path = sugar.generate_filename()
        image = Image.open(file_path)
        image = image.rotate(-90)
        image.save(file_output_path)
        person.data['photo'] = file_output_path.name
        person.save()
        file_path.unlink()

    return flask.jsonify({
        'photo': '%s' % person.image_file
    })
Example #2
0
def _crop_photo(meeting, person, url):
    app = flask.current_app
    form = flask.request.form
    x1 = Decimal(form['x1'] or 0) + Decimal(0.1)
    y1 = Decimal(form['y1'] or 0) + Decimal(0.1)
    x2 = Decimal(form['x2'] or 0) + Decimal(0.1)
    y2 = Decimal(form['y2'] or 0) + Decimal(0.1)
    valid_crop = (x2 > Decimal(0.1) and y2 > Decimal(0.1))

    if person.has_photo and valid_crop:
        file_path = app.config['UPLOADED_PHOTOS_DEST'] / person.data['photo']
        file_output_path = sugar.generate_filename()

        img = Image.open(file_path)
        img = img.crop((x1, y1, x2, y2))
        img.save(file_output_path)
        person.data['photo'] = file_output_path.name
        if not 'original_photo' in person.data:
            person.data['original_photo'] = file_path.name
        else:
            file_path.unlink()
        person.save()
    return flask.redirect(url)