diff --git a/main.py b/main.py
new file mode 100644
index 0000000..eb96698
--- /dev/null
+++ b/main.py
@@ -0,0 +1,27 @@
+from flask import *
+from render.initer import load_themes, render_pic
+import os
+
+app = Flask(__name__)
+
+
+@app.route("/", methods=["GET"])
+def create_pic():
+ name_query = str(request.args.get("name"))
+ theme_query = str(request.args.get("t"))
+
+ filename = render_pic(themes, name_query, theme_query)
+
+ if filename == "error":
+ return "
error
check if theme exist or name & theme is given!
"
+
+ return send_file(filename, mimetype='image/gif')
+
+
+if __name__ == "__main__":
+ dirs = 'render/outputs'
+ for f in os.listdir(dirs):
+ os.remove(os.path.join(dirs, f))
+
+ themes = load_themes()
+ app.run(port=888)
diff --git a/render/__pycache__/initer.cpython-39.pyc b/render/__pycache__/initer.cpython-39.pyc
new file mode 100644
index 0000000..cc7eacd
Binary files /dev/null and b/render/__pycache__/initer.cpython-39.pyc differ
diff --git a/render/fonts/font1.ttf b/render/fonts/font1.ttf
new file mode 100644
index 0000000..d2190b5
Binary files /dev/null and b/render/fonts/font1.ttf differ
diff --git a/render/initer.py b/render/initer.py
new file mode 100644
index 0000000..fd4c598
--- /dev/null
+++ b/render/initer.py
@@ -0,0 +1,25 @@
+from render.utils.theme import Theme
+from render.utils.readfile import readfile
+from render.utils.render_worker import render_worker
+import os
+
+
+def render_pic(themes, name, theme):
+ if theme == "None" or name == "None" or len(themes)-1 < int(theme):
+ return "error"
+
+ if not os.path.exists(f"render/outputs/{name}{theme}.png"):
+ print("Anfrage noch nicht gerendert, Wird nun erstellt ...")
+ filename = render_worker(name, int(theme), themes)
+ return filename
+
+ else:
+ print("Anfrage wurde schon gerendert, wird nun übergeben ...")
+ return f"render/outputs/{name}{theme}.png"
+
+
+def load_themes():
+ file = open("render/themelist.txt", "r")
+ liste = readfile(file)
+ file.close()
+ return liste
diff --git a/render/outputs/Jonas1.png b/render/outputs/Jonas1.png
new file mode 100644
index 0000000..f1695c7
Binary files /dev/null and b/render/outputs/Jonas1.png differ
diff --git a/render/outputs/Jonas2.png b/render/outputs/Jonas2.png
new file mode 100644
index 0000000..046e280
Binary files /dev/null and b/render/outputs/Jonas2.png differ
diff --git a/render/themelist.txt b/render/themelist.txt
new file mode 100644
index 0000000..1abc7ae
--- /dev/null
+++ b/render/themelist.txt
@@ -0,0 +1,24 @@
+0
+white.png
+180
+font1.ttf
+0
+0
+0
+
+1
+black.png
+180
+font1.ttf
+255
+255
+255
+
+2
+white.png
+180
+font1.ttf
+204
+6
+5
+
diff --git a/render/themes/black.png b/render/themes/black.png
new file mode 100644
index 0000000..b40186d
Binary files /dev/null and b/render/themes/black.png differ
diff --git a/render/themes/white.png b/render/themes/white.png
new file mode 100644
index 0000000..6da7f65
Binary files /dev/null and b/render/themes/white.png differ
diff --git a/render/utils/__pycache__/readfile.cpython-39.pyc b/render/utils/__pycache__/readfile.cpython-39.pyc
new file mode 100644
index 0000000..9fa5b33
Binary files /dev/null and b/render/utils/__pycache__/readfile.cpython-39.pyc differ
diff --git a/render/utils/__pycache__/render_worker.cpython-39.pyc b/render/utils/__pycache__/render_worker.cpython-39.pyc
new file mode 100644
index 0000000..a5bdf7f
Binary files /dev/null and b/render/utils/__pycache__/render_worker.cpython-39.pyc differ
diff --git a/render/utils/__pycache__/text_align.cpython-39.pyc b/render/utils/__pycache__/text_align.cpython-39.pyc
new file mode 100644
index 0000000..fe6be8a
Binary files /dev/null and b/render/utils/__pycache__/text_align.cpython-39.pyc differ
diff --git a/render/utils/__pycache__/theme.cpython-39.pyc b/render/utils/__pycache__/theme.cpython-39.pyc
new file mode 100644
index 0000000..b3729f8
Binary files /dev/null and b/render/utils/__pycache__/theme.cpython-39.pyc differ
diff --git a/render/utils/readfile.py b/render/utils/readfile.py
new file mode 100644
index 0000000..967046d
--- /dev/null
+++ b/render/utils/readfile.py
@@ -0,0 +1,41 @@
+from render.utils.theme import Theme
+
+
+def readfile(file):
+ liste = []
+ i = 0
+ nummer = ""
+ dataname = ""
+ bold = ""
+ fontname = ""
+ color1 = ""
+ color2 = ""
+ color3 = ""
+ for line in file:
+ if i == 0:
+ nummer = line.rstrip()
+ i += 1
+ elif i == 1:
+ dataname = line.rstrip()
+ i += 1
+ elif i == 2:
+ bold = line.rstrip()
+ i += 1
+ elif i == 3:
+ fontname = line.rstrip()
+ i += 1
+ elif i == 4:
+ color1 = line.rstrip()
+ i += 1
+ elif i == 5:
+ color2 = line.rstrip()
+ i += 1
+ elif i == 6:
+ color3 = line.rstrip()
+ i += 1
+ elif i == 7:
+ i = 0
+ print("Geladendes Thema: ", nummer, dataname, bold, fontname, color1, color2, color3)
+ liste += [Theme(nummer, dataname, bold, fontname, color1, color2, color3)]
+
+ return liste
diff --git a/render/utils/render_worker.py b/render/utils/render_worker.py
new file mode 100644
index 0000000..c5fc8ff
--- /dev/null
+++ b/render/utils/render_worker.py
@@ -0,0 +1,17 @@
+from PIL import Image
+from PIL import ImageFont
+from PIL import ImageDraw
+from render.utils.text_align import get_text_align
+
+
+def render_worker(name: str, theme: int, themes):
+ img = Image.open(f"render/themes/{themes[theme].getdataname()}")
+ font = ImageFont.truetype(f"render/fonts/{themes[theme].getfontname()}", int(themes[theme].getbold()))
+
+ draw = ImageDraw.Draw(img)
+
+ msg = name
+
+ draw.text(get_text_align(msg, font, (1024, 1024)), msg, (int(themes[theme].getcolor1()), int(themes[theme].getcolor2()), int(themes[theme].getcolor3())), font=font)
+ img.save(f"render/outputs/{name}{theme}.png")
+ return f"render/outputs/{name}{theme}.png"
diff --git a/render/utils/speicher b/render/utils/speicher
new file mode 100644
index 0000000..977dccd
--- /dev/null
+++ b/render/utils/speicher
@@ -0,0 +1,16 @@
+from PIL import Image
+from PIL import ImageFont
+from PIL import ImageDraw
+from render.utils.text_align import get_text_align
+
+img = Image.open("themes/1.png")
+font = ImageFont.truetype("fonts/font1.ttf", 180)
+
+width, height = 1024, 1024
+
+draw = ImageDraw.Draw(img)
+
+msg = "Himmelberg"
+
+draw.text(get_text_align(msg, font, (1024, 1024)), msg, (0, 0, 0), font=font)
+img.save("test.png")
\ No newline at end of file
diff --git a/render/utils/text_align.py b/render/utils/text_align.py
new file mode 100644
index 0000000..cb91f1c
--- /dev/null
+++ b/render/utils/text_align.py
@@ -0,0 +1,13 @@
+from PIL import Image
+from PIL import ImageFont
+from PIL import ImageDraw
+
+
+def get_text_align(text, font, pic_size):
+ ascent, descent = font.getmetrics()
+ w = font.getmask(text).getbbox()[2]
+ h = font.getmask(text).getbbox()[3] + descent
+
+ h += int(h * 0.21)
+
+ return (pic_size[0] - w) / 2, (pic_size[1] - h) / 2
diff --git a/render/utils/theme.py b/render/utils/theme.py
new file mode 100644
index 0000000..d066775
--- /dev/null
+++ b/render/utils/theme.py
@@ -0,0 +1,30 @@
+class Theme:
+ def __init__(self, nummer, dataname, bold, fontname, color1, color2, color3):
+ self.__Nummer = nummer
+ self.__Dataname = dataname
+ self.__Bold = bold
+ self.__Fontname = fontname
+ self.__Color1 = color1
+ self.__Color2 = color2
+ self.__Color3 = color3
+
+ def getnummer(self):
+ return self.__Nummer
+
+ def getdataname(self):
+ return self.__Dataname
+
+ def getbold(self):
+ return self.__Bold
+
+ def getfontname(self):
+ return self.__Fontname
+
+ def getcolor1(self):
+ return self.__Color1
+
+ def getcolor2(self):
+ return self.__Color2
+
+ def getcolor3(self):
+ return self.__Color3