Created
March 13, 2019 11:14
-
-
Save Shatoidil/22a4d5d8513526534c03db99ec6a9b3a to your computer and use it in GitHub Desktop.
Flask and Pillow
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
from flask import Flask, render_template, request, send_file, json | |
from blanksts import * | |
from nocache import nocache | |
application = Flask(__name__) | |
@application.route("/") | |
def index(): | |
application.config["CACHE_TYPE"] = "null" | |
return render_template('index.html') | |
@application.route('/result',methods = ['POST', 'GET']) | |
def result(): | |
if request.method == 'POST': | |
if request.form.get("serial_number") != "": | |
set_serial_number(request.form.get("serial_number")) | |
save_image() | |
path = "sts_new.png" | |
return send_file(path, as_attachment=True) | |
@application.after_request | |
def add_header(response): | |
""" | |
Add headers to both force latest IE rendering engine or Chrome Frame, | |
and also to cache the rendered page for 10 minutes. | |
""" | |
response.headers['X-UA-Compatible'] = 'IE=Edge,chrome=1' | |
response.headers['Cache-Control'] = 'public, max-age=0' | |
return response | |
if __name__ == "__main__": | |
application.run(host='0.0.0.0') |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
from PIL import Image, ImageDraw, ImageFont | |
image = Image.open('sts.png').convert("RGBA") | |
size = 1413, 1000 | |
txt = Image.new('RGBA', size, (255,255,255,0)) | |
draw = ImageDraw.Draw(txt) | |
font_vin = ImageFont.truetype("./fonts/arial.ttf", size=35) | |
font_reg = ImageFont.truetype("./fonts/Arial-BoldMT.ttf", size=35) | |
font_marka_with_marka_eng = ImageFont.truetype("./fonts/arial.ttf", size=26) | |
font_marka = ImageFont.truetype("./fonts/arial.ttf", size=30) | |
def set_serial_number(serial_number): | |
(x, y) = (900, 50) | |
message = serial_number | |
font_serial = ImageFont.truetype('2057.ttf', size=43) | |
draw.text((x, y), message, fill=(200, 0, 0, 255), font=font_serial) | |
def save_image(): | |
combined = Image.alpha_composite(image, txt) | |
combined.save('sts_new.png') |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<!DOCTYPE html> | |
<html lang="en"> | |
<head> | |
<meta charset="utf-8"> | |
<meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no"> | |
<meta name="description" content=""> | |
<meta name="author" content=""> | |
<title>СТС</title> | |
<!-- Bootstrap core CSS --> | |
<link href="./static/css/bootstrap.min.css" rel="stylesheet"> | |
</head> | |
<body id="page-top"> | |
<!-- Contact Section --> | |
<h2 class="text-center text-uppercase text-secondary mb-0">СТС</h2> | |
<hr class="star-dark mb-5"> | |
<div class="row p-2" style="margin-left: 15px; margin-right: 15px;"> | |
<div class="col-lg-6"> | |
<!-- To configure the contact form email address, go to mail/contact_me.php and update the email address in the PHP file on line 19. --> | |
<!-- The form should work on most web servers, but if the form is not working you may need to configure your web server differently. --> | |
<form action="http://localhost:5000/result" method="POST"> | |
<div class="control-group"> | |
<div class="form-group floating-label-form-group controls mb-0 pb-2 col-12"> | |
<label>Серия и номер СТС</label> | |
<input class="form-control text-uppercase" name="serial_number" type="text" required="required" | |
data-validation-required-message="Please enter your name." autocomplete="off"> | |
<p class="help-block text-danger"></p> | |
</div> | |
</div> | |
<div class="control-group"> | |
<div class="form-group floating-label-form-group controls mb-0 pb-2 col-12"> | |
<label>Рег.номер</label> | |
<input class="form-control text-uppercase" name="reg_number" type="text" required="required" | |
data-validation-required-message="Please enter your name." autocomplete="off"> | |
<p class="help-block text-danger"></p> | |
</div> | |
</div> | |
<div class="control-group"> | |
<div class="form-group floating-label-form-group controls mb-0 pb-2 col-12"> | |
<label>VIN</label> | |
<input class="form-control text-uppercase" name="vin" type="text" required="required" | |
data-validation-required-message="Please enter your name." autocomplete="off"> | |
<p class="help-block text-danger"></p> | |
</div> | |
</div> | |
<div class="form-row m-2"> | |
<div class="control-group col-4"> | |
<div class="form-group floating-label-form-group controls mb-0 pb-2 "> | |
<label>Марка, модель</label> | |
<input class="form-control text-uppercase" name="marka" type="text" | |
data-validation-required-message="Please enter your name." autocomplete="off"> | |
<p class="help-block text-danger"></p> | |
</div> | |
</div> | |
<div class="control-group col-4"> | |
<div class="form-group floating-label-form-group controls mb-0 pb-2 "> | |
<label>Марка, модель (eng)</label> | |
<input class="form-control text-uppercase" name="marka_eng" type="text" | |
data-validation-required-message="Please enter your name." autocomplete="off"> | |
<p class="help-block text-danger"></p> | |
</div> | |
</div> | |
</div> | |
<div class="form-group"> | |
<button type="submit" class="btn btn-primary btn-xl" id="sendMessageButton">Создать бланк</button> | |
</div> | |
</form> | |
</div> | |
<div class="col-lg-6"> | |
<img id="img_sts" src="./static/sts.png" class="img-fluid" alt="Responsive image"> | |
</div> | |
</div> | |
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.1.1/jquery.min.js"></script> | |
<!-- Contact Form JavaScript --> | |
<script src="js/jqBootstrapValidation.js"></script> | |
</body> | |
</html> |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment