Erstellen Sie mit Flask eine Bildkompositionsanwendung. Installieren Sie das Kissenmodul.
Wählen Sie das zu kombinierende Bild aus dem Formular aus und wählen Sie die Datei aus, die Sie kombinieren möchten, z. B. das Logo. Ein zusammengesetztes Bild wird im Ausführungsergebnis angezeigt. Dieses Mal werden die folgenden zwei Bilder kombiniert.
Wie immer ist es wieder Pfirsich.
Der Name wird zum Zeitpunkt des Zusammensetzens überschrieben, aber bitte tun Sie etwas dagegen.
imgadd.py
import os
from PIL import Image
from flask import Flask, render_template, request, redirect, url_for, send_from_directory, session
from werkzeug import secure_filename
app = Flask(__name__)
UPLOAD_FOLDER = './uploads'
ALLOWED_EXTENSIONS = set(['jpg','png','gif'])
app.config['UPLOAD_FOLDER'] = UPLOAD_FOLDER
app.config['SECRET_KEY'] = os.urandom(24)
def allowed_file(filename):
return '.' in filename and \
filename.rsplit('.', 1)[1] in ALLOWED_EXTENSIONS
@app.route('/')
def index():
return render_template('img.html')
@app.route('/show_img', methods=['GET', 'POST'])
def show_img():
if request.method == 'POST':
img_data = request.files['img_data']
logo_data = request.files['logo_data']
if img_data and allowed_file(img_data.filename):
filename = secure_filename(img_data.filename)
img_data.save(os.path.join(app.config['UPLOAD_FOLDER'], filename))
SQUARE_FIT_SIZE = 600
MAIN_FILENAME = 'uploads/' + filename
im = Image.open(MAIN_FILENAME)
im.thumbnail((SQUARE_FIT_SIZE, SQUARE_FIT_SIZE))
width, height = im.size
if logo_data and allowed_file(logo_data.filename):
filename = secure_filename(logo_data.filename)
logo_data.save(os.path.join(app.config['UPLOAD_FOLDER'], filename))
SQUARE_FIT_SIZE = 100
LOGO_FILENAME = 'uploads/' + filename
logo_im = Image.open(LOGO_FILENAME)
logo_width, logo_height = logo_im.size
im.paste(logo_im, (width-logo_width, height-logo_height), logo_im)
im.save(os.path.join(app.config['UPLOAD_FOLDER'], filename))
img_url = '/uploads/' + filename
return render_template('img.html', img_url=img_url)
@app.route('/uploads/<filename>')
def uploaded_file(filename):
return send_from_directory(app.config['UPLOAD_FOLDER'], filename)
if __name__ == '__main__':
app.debug = True
app.run()
img.html
{% extends "base.html" %}
{% block content %}
<form method="post" action="{{ url_for('show_img') }}" enctype="multipart/form-data">
Hauptbild auswählen<input type="file" id="img_data" name="img_data">
Logo auswählen<input type="file" id="logo_data" name="logo_data">
<input type="submit" value="Senden">
</fomr>
<div>
{% if img_url %}
<p><img src="{{ img_url }}"></p>
{% endif %}
</div>
{% endblock %}
Es ist ein einfaches Formular, aber ich werde Ihnen sofort ein Bild senden.
Erfolgreich.
Recommended Posts