Programming Basics

[Python] 티스토리 제목 썸네일 자동화 코드

ISLA! 2024. 2. 21. 16:16

 

위와 같이 간단하게 티스토리 포스팅 타이틀만 입력하면 썸네일을 만들어주는 코드를 공유합니다


▶︎ PIL(Pillow) 라이브러리를 사용하여 이미지를 생성하는 함수

제목은 특정 길이를 초과할 경우, 자동으로 줄바꿈되어 표시된다

from PIL import Image, ImageDraw, ImageFont
import textwrap

def make_thumb(save_path, var_title): 
    var_max_w = 500 # 이미지 폭
    var_max_h = 500 # 이미지 높이
    var_anchor = "mm"  # middle, middle
    var_font_path = "....../NotoSansKR-Bold.otf" # 폰트 경로
    var_font_size = 50
    var_font_color = "#212529" # 글자색상   
    var_back_color = "#f8f9fa" # 배경색상
    var_stroke_color = "#FFFFFF"    
    var_img = Image.new(mode="RGB", size=(var_max_w, var_max_h), color=var_back_color)
    var_draw = ImageDraw.Draw(var_img) 
    
    var_font = ImageFont.truetype(var_font_path, var_font_size)
    var_title_width_length = 10  # 한 라인의 Max 글자 수
    var_pad = 8  # 줄 간격    
    
    var_title_wrap = textwrap.wrap(var_title, width=var_title_width_length)
    var_len_line = len(var_title_wrap)
    var_x_point = var_max_w / 2 
    
    var_textsize_h = var_draw.textsize(var_title_wrap[0], font=var_font)[1]   
    var_y_point = (var_max_h - (var_textsize_h * var_len_line + var_pad * (var_len_line - 1))) / 2
    
    for var_line in var_title_wrap: 
        var_textsize = var_draw.textsize(var_line, font=var_font)
        var_x_point = (var_max_w - var_textsize[0]) / 2
        var_draw.text((var_x_point, var_y_point), var_line, font=var_font, fill=var_font_color)
        var_y_point += var_textsize_h + var_pad  
    
    var_img.save(save_path) 
    var_img.show()

make_thumb("파일경로/제목.png", "여기에 썸네일 제목 입력")

 

728x90