[PYTHON] Créez une application de composition d'images avec Flask + Pillow

Créez une application de composition d'images à l'aide de Flask. Installez le module Oreiller.

Aperçu

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.

limited_car.jpg

momo.png

Comme d'habitude, c'est à nouveau pêche.

Réalité du code

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 %}

Courir

スクリーンショット 2017-06-06 12.58.13.png

C'est un formulaire simple, mais je vous enverrai une image tout de suite.

スクリーンショット 2017-06-06 12.58.46.png

Réussi.

Recommended Posts

Créez une application de composition d'images avec Flask + Pillow
Créer une visionneuse de traitement d'image avec PySimpleGUI
Créez une application Web simple avec Flask
[Python] Créez rapidement une API avec Flask
Créez une application de mots anglais avec python
Créez une application qui devine les étudiants avec Python
Créer une image avec des caractères avec python (japonais)
Créer un serveur local GIF animé avec Python + Flask
Créez une application qui devine les étudiants avec la version python-GUI
Traitement d'image avec PIL (Pillow)
Créer un environnement avec virtualenv
Créer une API avec Django
Créer une visionneuse d'images avec Tkinter
Créons une application qui authentifie OIDC avec Azure AD
Créer une application Todo avec Django ① Créer un environnement avec Docker
Découpez une image avec python
Exécutez l'application avec Flask + Heroku
Créez une tranche d'âge avec les pandas
Fonction de téléchargement d'image avec Vue.js + Flask
Créer une application en classifiant avec Pygame
Stockage de table Azure avec l'application PTVS Flask
Déployer l'application flask avec mod_wsgi (à l'aide de pipenv)
Créez une image factice avec Python + PIL.
Créez rapidement un fichier Excel avec Python #python
Créer une application graphique avec Tkinter de Python
Créer un écran de mise à jour avec Django Updateview
Application Web facile avec Python + Flask + Heroku
Création de la première application avec Django startproject
Validez chaque valeur de pixel lors du redimensionnement d'une image avec Pillow avec le voisin le plus proche
J'ai essayé de jouer avec l'image avec Pillow
Traitez facilement des images en Python avec Pillow
Générer une instance Excel compatible avec les compléments avec xlwings
[Golang] Créer une image de menu fixe avec des actions Github
Créer un service Web avec Docker + Flask
Premiers pas avec Heroku, déploiement de l'application Flask
Remplacez rapidement les couleurs de l'image par PIL / Pillow
Essayez de générer une image avec aliénation
Créez un fichier msi évolutif avec cx_Freeze
[kotlin] Créez une application qui reconnaît les photos prises avec un appareil photo sur Android
Créez une application qui fonctionne bien avec les rapports des utilisateurs à l'aide de l'API COTOHA
Créer un programme académique avec optimisation des combinaisons
Créer un papier peint à pois avec la bibliothèque d'images Python
Gagnez l'application Web Python + Flask avec Jenkins
Comment recadrer une image avec Python + OpenCV
Créer un babillard avec Heroku, Flask, SQL Alchemy
Procédure de création d'application multi-plateforme avec kivy
Créez rapidement un serveur API avec Python + Falcon
Créons une application capable de rechercher des images similaires avec Python et Flask Part1
Créez un modèle de classification d'images de manière explosive avec Azure Custom Vision et implémentez-le avec Flask
Je veux convertir une image en WebP avec sucette
Créer une application Todo avec Django REST Framework + Angular
Créez une application graphique native avec Py2app et Tkinter
Créez un fichier image à l'aide de PIL (Python Imaging Library).
Apprentissage automatique facile avec scikit-learn et flask ✕ Application Web
Essayez de créer une application Todo avec le framework Django REST
Créez un tweet idole avec Keras LSTM (génération de phrases)
Un moyen simple de créer un module d'importation avec jupyter
Créer une application Todo avec Django ③ Créer une page de liste de tâches