diff --git a/flask/gen_image.py b/flask/gen_image.py index 40977b3..1e9ea0f 100644 --- a/flask/gen_image.py +++ b/flask/gen_image.py @@ -6,16 +6,22 @@ def gen_image(height, text1, text2): font1 = ImageFont.truetype("ComicMono.ttf", size=text1["size"]) font2 = ImageFont.truetype("ComicMono.ttf", size=text2["size"]) - text1_box = font1.getbbox(text1["string"]) - text2_box = font2.getbbox(text2["string"]) + text1["string"] = text1["string"].replace("\r\n", "\n") + text2["string"] = text2["string"].replace("\r\n", "\n") - text1_width = text1_box[2] - text2_width = text2_box[2] + lines1 = text1["string"].split('\n') + lines2 = text2["string"].split('\n') + + text1_width = max([font1.getbbox(line)[2] for line in lines1]) + text2_width = max([font2.getbbox(line)[2] for line in lines2]) + + text1_max_start = max([font1.getbbox(line)[0] for line in lines1]) + text2_max_start = max([font2.getbbox(line)[0] for line in lines2]) # I am assuming the left corner of the bbox to always be 0, I have yet to # encounter a situation when this isn't the case - if (text1_box[0] != 0 or text2_box[0] != 0): - print(Fore.YELLOW + "Warning, found situation where left corner of bbox of text != 0,", "text1_box:", text1_box, "text2_box", text2_box) + if (text1_max_start != 0 or text2_max_start != 0): + print(Fore.YELLOW + "Warning, found situation where left corner of bbox of text != 0,", "text1_box:", text1, "text2_box", text2) # the 1 here assures we don't get a 0 width image img = Image.new('1', (max(text1_width, text2_width, 1), height), color=1) @@ -34,7 +40,7 @@ Text1 = { } Text2 = { - "string": "Hello worhfeiheifhefld", + "string": "Hello worhfeiheifhefld\nafefe", "size": 20, "pos": 40, } diff --git a/flask/templates/text.html b/flask/templates/text.html index abdb064..7a327ef 100644 --- a/flask/templates/text.html +++ b/flask/templates/text.html @@ -14,14 +14,16 @@

String 1

- Text:
+ Text:
+
Size:
Y position:

String 2

- Text:
+ Text:
+
Size:
Y position: