· 4 years ago · Jun 28, 2021, 08:02 PM
1from flask import Flask
2app = Flask(__name__)
3
4@app.route("/")
5def hello():
6 return " <html><head></head> <body> Enter </body></html>"
7
8from flask import render_template
9
10from flask_wtf import FlaskForm,RecaptchaField
11from wtforms import StringField, SubmitField, TextAreaField
12
13from wtforms.validators import DataRequired
14from flask_wtf.file import FileField, FileAllowed, FileRequired
15import scipy.ndimage.interpolation as interp
16
17SECRET_KEY = 'secret'
18app.config['SECRET_KEY'] = SECRET_KEY
19
20app.config['RECAPTCHA_USE_SSL'] = False
21app.config['RECAPTCHA_PUBLIC_KEY'] = '6LcDoScbAAAAANOWBHNB3QnRTxrJvpOItbhMBKsL'
22app.config['RECAPTCHA_PRIVATE_KEY'] = '6LcDoScbAAAAAB2vlAIbxvkMUqoI90VBDX_Ix7M8'
23app.config['RECAPTCHA_OPTIONS'] = {'theme': 'white'}
24
25from flask_bootstrap import Bootstrap
26bootstrap = Bootstrap(app)
27
28class NetForm(FlaskForm):
29
30 cho = StringField('Введите угол поворота', validators = [DataRequired()])
31
32 upload = FileField('Load image', validators=[
33 FileRequired(),
34 FileAllowed(['jpg', 'png', 'jpeg'], 'Images only!')])
35
36 recaptcha = RecaptchaField()
37
38 submit = SubmitField('send')
39
40from werkzeug.utils import secure_filename
41import os
42
43import numpy as np
44from PIL import Image
45import matplotlib.pyplot as plt
46import seaborn as sns
47
48
49def draw(filename,cho):
50 print(filename)
51 img= Image.open(filename)
52 x, y = img.size
53 cho=int(cho)
54 ##gra
55 fig = plt.figure(figsize=(6, 4))
56 ax = fig.add_subplot()
57 data = np.random.randint(0, 255, (100, 100))
58 ax.imshow(img, cmap='plasma')
59 b = ax.pcolormesh(data, edgecolors='black', cmap='plasma')
60 fig.colorbar(b, ax=ax)
61 gr_path = "./static/newgr.png"
62 sns.displot(data)
63 plt.savefig(gr_path)
64 plt.close()
65
66
67 #img = Image.rotate(input=img, angle=cho, axes=(0,1), reshape = False)
68
69 img=img.rotate(cho)
70 output_filename = filename
71 img.save(output_filename)
72
73 fig = plt.figure(figsize=(6, 4))
74 ax = fig.add_subplot()
75 data = np.random.randint(0, 255, (100, 100))
76 ax.imshow(img, cmap='plasma')
77 b = ax.pcolormesh(data, edgecolors='black', cmap='plasma')
78 fig.colorbar(b, ax=ax)
79 gr_path2 = "./static/newgr2.png"
80 sns.displot(data)
81 plt.savefig(gr_path2)
82 plt.close()
83 return output_filename,gr_path,gr_path2
84
85@app.route("/net",methods=['GET', 'POST'])
86def net():
87
88 form = NetForm()
89
90 filename=None
91 newfilename=None
92 grname=None
93 grname2=None
94 if form.validate_on_submit():
95
96 filename = os.path.join('./static', secure_filename(form.upload.data.filename))
97 ch=form.cho.data
98
99 form.upload.data.save(filename)
100 newfilename,grname,grname2 = draw(filename,ch)
101
102
103 return render_template('net.html',form=form,image_name=newfilename,gr_name=grname,gr_name2=grname2)
104
105
106if __name__ == "__main__":
107 app.run(host='127.0.0.1',port=5000)