[PYTHON] Erstellen Sie eine Bildkompositions-App mit Flask + Pillow

Erstellen Sie mit Flask eine Bildkompositionsanwendung. Installieren Sie das Kissenmodul.

Überblick

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.

limited_car.jpg

momo.png

Wie immer ist es wieder Pfirsich.

Code Realität

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

Lauf

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

Es ist ein einfaches Formular, aber ich werde Ihnen sofort ein Bild senden.

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

Erfolgreich.

Recommended Posts

Erstellen Sie eine Bildkompositions-App mit Flask + Pillow
Erstellen Sie mit PySimpleGUI einen Bildverarbeitungs-Viewer
Erstellen Sie eine einfache Web-App mit Flasche
[Python] Erstellen Sie schnell eine API mit Flask
Erstellen Sie eine englische Wort-App mit Python
Erstellen Sie eine App, die Schüler mit Python errät
Erstellen Sie ein Bild mit Zeichen mit Python (Japanisch)
Erstellen Sie mit Python + Flask einen animierten lokalen GIF-Server
Erstellen Sie eine App, die Schüler mit der Python-GUI-Version errät
Bildverarbeitung mit PIL (Pillow)
Erstellen Sie eine Umgebung mit virtualenv
Erstellen Sie eine API mit Django
Erstellen Sie den Image Viewer mit Tkinter
Erstellen wir eine App, die OIDC mit Azure AD authentifiziert
Erstellen einer Todo-App mit Django ① Erstellen Sie eine Umgebung mit Docker
Schneiden Sie ein Bild mit Python aus
Führen Sie die App mit Flask + Heroku aus
Erstellen Sie eine Altersgruppe mit Pandas
Bild-Upload-Funktion mit Vue.js + Flask
Erstellen Sie eine Anwendung, indem Sie mit Pygame klassifizieren
Azure-Tabellenspeicher mit PTVS Flask-App
Stellen Sie die Kolben-App mit mod_wsgi bereit (mithilfe von pipenv).
Erstellen Sie mit Python + PIL ein Dummy-Image.
Erstellen Sie schnell eine Excel-Datei mit Python #python
Erstellen Sie eine GUI-App mit Tkinter of Python
Erstellen Sie mit Django Updateview einen Update-Bildschirm
Einfache Web-App mit Python + Flask + Heroku
Erstellen der ersten App mit Django Startprojekt
Überprüfen Sie jeden Pixelwert, wenn Sie die Größe eines Bildes mit Pillow mit dem nächsten Nachbarn ändern
Ich habe versucht, mit Pillow mit dem Bild zu spielen
Verarbeiten Sie Bilder in Python ganz einfach mit Pillow
Generieren Sie eine add-in-fähige Excel-Instanz mit xlwings
[Golang] Erstellen Sie ein Docker-Image mit Github-Aktionen
Erstellen Sie einen Webdienst mit Docker + Flask
Erste Schritte mit Heroku, Bereitstellen der Flaschen-App
Ersetzen Sie Bildfarben schnell durch PIL / Kissen
Versuchen Sie, ein Bild mit Entfremdung zu erzeugen
Erstellen Sie mit cx_Freeze eine aktualisierbare MSI-Datei
[kotlin] Erstellen Sie eine App, die Fotos erkennt, die mit einer Kamera auf Android aufgenommen wurden
Erstellen Sie mithilfe der COTOHA-API eine App, die gut mit Berichten von Personen funktioniert
Erstellen Sie ein akademisches Programm mit Kombinationsoptimierung
Erstellen eines Hintergrundbilds mit Tupfen mit der Python-Bildbibliothek
Gewinnen Sie die Python + Flask-Web-App mit Jenkins
So beschneiden Sie ein Bild mit Python + OpenCV
Erstellen Sie ein Bulletin Board mit Heroku, Flask, SQL Alchemy
Verfahren zur Erstellung plattformübergreifender Apps mit kivy
Erstellen Sie schnell einen API-Server mit Python + Falcon
Lassen Sie uns eine App erstellen, die ähnliche Bilder mit Python und Flask Part1 durchsuchen kann
Erstellen Sie mit Azure Custom Vision explosionsartig ein Bildklassifizierungsmodell und implementieren Sie es mit Flask
Ich möchte ein Bild mit Lollipop in WebP konvertieren
Erstellen Sie eine Todo-App mit Django REST Framework + Angular
Erstellen Sie mit Py2app und Tkinter eine native GUI-App
Erstellen Sie eine Bilddatei mit PIL (Python Imaging Library).
Einfaches maschinelles Lernen mit Scikit-Learn und Flask ✕ Web App
Lassen Sie uns eine Todo-App mit dem Django REST-Framework erstellen
Machen Sie einen idolartigen Tweet mit Keras LSTM (Satzgenerierung)
Eine einfache Möglichkeit, ein Importmodul mit jupyter zu erstellen
Todo-App mit Django erstellen ③ Aufgabenlistenseite erstellen