parent
48109f5318
commit
b6b92adbd5
@ -0,0 +1,39 @@
|
|||||||
|
from PIL import ImageDraw, ImageFont
|
||||||
|
|
||||||
|
|
||||||
|
def create_thumbnail(thumbnail, font_family, font_size, font_color, width, height, title):
|
||||||
|
|
||||||
|
font = ImageFont.truetype(font_family + ".ttf", font_size)
|
||||||
|
Xaxis = width - (width * 0.2) # 20% of the width
|
||||||
|
sizeLetterXaxis = font_size * 0.5 # 50% of the font size
|
||||||
|
XaxisLetterQty = round(Xaxis / sizeLetterXaxis) # Quantity of letters that can fit in the X axis
|
||||||
|
MarginYaxis = (height * 0.12) # 12% of the height
|
||||||
|
MarginXaxis = (width * 0.05) # 5% of the width
|
||||||
|
# 1.1 rem
|
||||||
|
LineHeight = font_size * 1.1
|
||||||
|
# rgb = "255,255,255" transform to list
|
||||||
|
rgb = font_color.split(",")
|
||||||
|
rgb = (int(rgb[0]), int(rgb[1]), int(rgb[2]))
|
||||||
|
|
||||||
|
arrayTitle = []
|
||||||
|
for word in title.split():
|
||||||
|
if len(arrayTitle) == 0:
|
||||||
|
# colocar a primeira palavra no arrayTitl# put the first word in the arrayTitle
|
||||||
|
arrayTitle.append(word)
|
||||||
|
else:
|
||||||
|
# if the size of arrayTitle is less than qtLetters
|
||||||
|
if len(arrayTitle[-1]) + len(word) < XaxisLetterQty:
|
||||||
|
arrayTitle[-1] = arrayTitle[-1] + " " + word
|
||||||
|
else:
|
||||||
|
arrayTitle.append(word)
|
||||||
|
|
||||||
|
print("arrayTitle: " + str(arrayTitle))
|
||||||
|
|
||||||
|
draw = ImageDraw.Draw(thumbnail)
|
||||||
|
# loop for put the title in the thumbnail
|
||||||
|
for i in range(0, len(arrayTitle)):
|
||||||
|
# 1.1 rem
|
||||||
|
draw.text((MarginXaxis, MarginYaxis + (LineHeight * i)),
|
||||||
|
arrayTitle[i], rgb, font=font)
|
||||||
|
|
||||||
|
return thumbnail
|
Loading…
Reference in new issue