File size: 7,578 Bytes
0a32a94
 
 
 
 
bf278fa
 
fbb5fa2
0a32a94
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
449cb02
 
0a32a94
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
6d65302
 
 
 
 
 
 
0a32a94
 
6d65302
 
 
 
 
fbb5fa2
 
0a32a94
 
 
 
 
 
 
 
 
 
 
 
 
 
 
fbb5fa2
 
7ca151b
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
import PIL
import textwrap
from shutil import make_archive
import random
from PIL import Image, ImageFont, ImageDraw
import gradio as gr

def igc(content_title='content_title',
        sub_title='Add sample text Here',
        sub_title_explanation='This text is an example that helps you explain the subtopic in more detail. You have the chance to provide additional information and give a clear explanation of the subtopic. Use this opportunity to share your knowledge and insights, and help the reader understand the subtopic better.',
        sub_title2='Add sample text Here',
        sub_title_explanation2='This text is an example that helps you explain the subtopic in more detail. You have the chance to provide additional information and give a clear explanation of the subtopic. Use this opportunity to share your knowledge and insights, and help the reader understand the subtopic better.',
        sub_title3='Add sample text Here',
        sub_title_explanation3='This text is an example that helps you explain the subtopic in more detail. You have the chance to provide additional information and give a clear explanation of the subtopic. Use this opportunity to share your knowledge and insights, and help the reader understand the subtopic better.',
        sub_title4='Add sample text Here',
        sub_title_explanation4='This text is an example that helps you explain the subtopic in more detail. You have the chance to provide additional information and give a clear explanation of the subtopic. Use this opportunity to share your knowledge and insights, and help the reader understand the subtopic better.',
        sub_title5='Add sample text Here',
        sub_title_explanation5='This text is an example that helps you explain the subtopic in more detail. You have the chance to provide additional information and give a clear explanation of the subtopic. Use this opportunity to share your knowledge and insights, and help the reader understand the subtopic better.'):


    content_title = content_title
    sub_title = sub_title
    sub_title_explanation = sub_title_explanation
    sub_title2 = sub_title2
    sub_title_explanation2 = sub_title_explanation2
    sub_title3 = sub_title3
    sub_title_explanation3 = sub_title_explanation3
    sub_title4 = sub_title4
    sub_title_explanation4 = sub_title_explanation4
    sub_title5 = sub_title5
    sub_title_explanation5 = sub_title_explanation5

    #Background image list
    titlebg = ['titlebg', 'titlebg1', 'titlebg2', 'titlebg3']
    subbg = ['subbg', 'subbg1', 'subbg2', 'subbg3']
    rntitlebg = random.choice(titlebg)
    rnsubbg = random.choice(subbg)

    #Add Account name on image
    account_name = '@' + 'a l g o r i t h m i c a i t i f y'
    background_image = Image.open('Background/'+rntitlebg+'.png') 
    sub_background_image = Image.open('Background/'+rnsubbg+'.png')
    background_image = background_image.resize((2000 , 2000))
    sub_background_image = sub_background_image.resize((2000 , 2000))
    background_draw = ImageDraw.Draw(background_image)
    sub_background_image_draw = ImageDraw.Draw(sub_background_image)
    account_name_font = ImageFont.truetype('Font/bahnschrift.ttf', 40)
    background_draw.text((56, 1920), account_name.title(), font=account_name_font, fill=(256, 256, 256))
    background_draw.text((1420, 56), account_name.title(), font=account_name_font, fill=(256, 256, 256))
    sub_background_image_draw.text((56, 1920), account_name.title(), font=account_name_font, fill=(256, 256, 256))
    sub_background_image_draw.text((1420, 56), account_name.title(), font=account_name_font, fill=(256, 256, 256))
    background_image.save(f"temp/Title_background.png")
    sub_background_image.save(f"temp/sub_background.png")

    #Add title to image
    new_background_image = Image.open('temp/Title_background.png')
    font_title = ImageFont.truetype('Font/Poppins-SemiBold.ttf', 200)
    new_background_image_draw = ImageDraw.Draw(new_background_image)
    content_title = textwrap.fill(content_title, width=8, break_long_words=False)
    new_background_image_draw.text((420, 420), content_title.upper(), font = font_title, fill=(0, 0, 0))
    new_background_image.save("Result/" + 'Title_Page.png')

    #Making list for content
    sub_title_list = [sub_title, sub_title2, sub_title3, sub_title4, sub_title5]
    sub_title_explanation_list = [sub_title_explanation, sub_title_explanation2, sub_title_explanation3, sub_title_explanation4, sub_title_explanation5]

    sub_title_font = ImageFont.truetype('Font/Poppins-Bold.ttf', 80)
    sub_title_number_font = ImageFont.truetype('Font/Poppins-Bold.ttf', 120)
    sub_title_explanation_font = ImageFont.truetype('Font/Poppins-Medium.ttf', 55)


    for i in range(0,5):
        sub_background_image = Image.open('temp/sub_background.png')
        sub_background_image_draw = ImageDraw.Draw(sub_background_image)
        if len(sub_title_list[i]) < 22:
            sub_title_list[i] = textwrap.fill(sub_title_list[i], width=12, break_long_words=False)
            sub_title_explanation_list[i] = textwrap.fill(sub_title_explanation_list[i], width=35,
                                                          break_long_words=False)
            sub_background_image_draw.text((450, 520), sub_title_list[i].title(), font=sub_title_font, fill=(0, 0, 0))
            sub_background_image_draw.text((517, 850), sub_title_explanation_list[i].title(),
                                           font=sub_title_explanation_font, fill=(0, 0, 0))
            sub_background_image_draw.text((290, 540), str(i + 1), font=sub_title_number_font, fill=(255, 255, 255))
            sub_background_image.save('Result/' + "Sub_Page" + str(i + 1) + ".png")
        else:
            sub_title_list[i] = textwrap.fill(sub_title_list[i], width=22, break_long_words=False)
            sub_title_explanation_list[i] = textwrap.fill(sub_title_explanation_list[i], width=35, break_long_words=False)
            sub_background_image_draw.text((450, 520), sub_title_list[i].title(), font= sub_title_font, fill=(0, 0, 0) )
            sub_background_image_draw.text((517, 850), sub_title_explanation_list[i].title(), font=sub_title_explanation_font, fill=(0, 0, 0))
            sub_background_image_draw.text((290, 540), str(i + 1), font=sub_title_number_font,fill=(255, 255, 255))
            sub_background_image.save('Result/' + "Sub_Page" + str(i + 1) + ".png")
    make_archive('Result', 'zip', 'Result')
    return 'Result.zip'

input_title = gr.inputs.Textbox(label="Title")
input_sub_title = gr.inputs.Textbox(label="Subtitle")
input_sub_title_explanation = gr.inputs.Textbox(label="Subtitle Explanation")
input_sub_title2 = gr.inputs.Textbox(label="Subtitle 2")
input_sub_title_explanation2 = gr.inputs.Textbox(label="Subtitle 2 Explanation")
input_sub_title3 = gr.inputs.Textbox(label="Subtitle 3")
input_sub_title_explanation3 = gr.inputs.Textbox(label="Subtitle 3 Explanation")
input_sub_title4 = gr.inputs.Textbox(label="Subtitle 4")
input_sub_title_explanation4 = gr.inputs.Textbox(label="Subtitle 4 Explanation")
input_sub_title5 = gr.inputs.Textbox(label="Subtitle 5")
input_sub_title_explanation5 = gr.inputs.Textbox(label="Subtitle 5 Explanation")

demo = gr.Interface(
    fn=igc,
    inputs=[input_title,input_sub_title,input_sub_title_explanation,input_sub_title2,input_sub_title_explanation2,input_sub_title3,input_sub_title_explanation3,input_sub_title4,input_sub_title_explanation4,input_sub_title5,input_sub_title_explanation5],outputs="file",output_filepath="Result.zip")

demo.launch(inline=False)