Créez une application de composition d'images à l'aide de Flask. Installez le module Oreiller.
Sélectionnez l'image à combiner dans le formulaire et sélectionnez le fichier que vous souhaitez combiner, tel que le logo. Une image composite s'affiche dans le résultat de l'exécution. Cette fois, les deux images suivantes seront combinées.
Comme d'habitude, c'est à nouveau pêche.
Le nom sera écrasé au moment de la composition, mais veuillez faire quelque chose à ce sujet.
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">
Sélectionnez l'image principale<input type="file" id="img_data" name="img_data">
Sélectionnez le logo<input type="file" id="logo_data" name="logo_data">
<input type="submit" value="Envoyer">
</fomr>
<div>
{% if img_url %}
<p><img src="{{ img_url }}"></p>
{% endif %}
</div>
{% endblock %}
C'est un formulaire simple, mais je vous enverrai une image tout de suite.
Réussi.
Recommended Posts