11import os
22import io
33
4+ import beeline
5+
46from flask import Flask
57from PIL import Image , ImageDraw , ImageFont , ImageChops
68from concurrent .futures import ThreadPoolExecutor , as_completed
@@ -143,8 +145,11 @@ def generate_preview_image(title, developer, icon, screenshots):
143145 for platform in platforms :
144146 image_ids [platform ] = (screenshots [platform ], platform_borders [platform ]['fallback' ])
145147
148+ span = beeline .start_span (context = { "name" : "load_images" })
146149 loaded_images = load_images_parallel (image_ids )
150+ beeline .finish_span (span )
147151
152+ span = beeline .start_span (context = { "name" : "render_images" })
148153 for platform in platforms :
149154 platform_image_in_border (
150155 canvas = canvas ,
@@ -167,13 +172,22 @@ def generate_preview_image(title, developer, icon, screenshots):
167172 title_position = (title_position [0 ] + 88 , title_position [1 ])
168173 author_position = (author_position [0 ] + 88 , author_position [1 ])
169174 text_space -= 88
175+ beeline .finish_span (span )
170176
177+ span = beeline .start_span (context = { "name" : "render_text" })
171178 draw_text_ellipsized (draw , title , font_large , title_position , text_space )
172179 draw_text_ellipsized (draw , developer , font_small , author_position , text_space )
180+ beeline .finish_span (span )
181+
182+ span = beeline .start_span (context = { "name" : "encode_png" })
183+
184+ try :
185+ buffer = io .BytesIO ()
186+ canvas .save (buffer , format = 'PNG' )
187+ buffer .seek (0 )
188+ finally :
189+ beeline .finish_span (span )
173190
174- buffer = io .BytesIO ()
175- canvas .save (buffer , format = 'PNG' )
176- buffer .seek (0 )
177191 return buffer .getvalue ()
178192
179193def init_app (app ):
0 commit comments