[Python] 티스토리 썸네일 이미지 만들기

개요

 가끔 티스토리 게시물 중 삽입된 사진이 없으면 마땅한 썸네일이 없는 경우가 있습니다. 파이썬으로 아래와 같은 썸네일을 간단히 만드는 코드를 작성하여, 앞으로 이용해보고자 합니다. 이미지 프로세스에 매우 많이 사용하는 Pillow 라이브러리를 이용하여 간단히 작업을 진행할 수 있습니다.

 

 

예시!

 

 

준비물 : 

 - Pillow (없다면 커맨드 라인에서 'pip install Pillow' 로 설치)

 - 폰트 : 네이버 나눔 스퀘어 hangeul.naver.com/2017/nanum) (다른 거 써도 상관 없음)

 

 

코드1

# coding: utf-8

from PIL import Image, ImageDraw, ImageFont
import textwrap

astr = "티스토리 썸네일 이미지 만들기"
para = textwrap.wrap(astr, width=11) #텍스트 한 줄에 최대 11자

MAX_W, MAX_H = 480, 480 #이미지 사이즈
bg_color = 'rgb(214, 230, 245)' #배경색 : 눈이 편한안 아이소프트존..

im = Image.new('RGB', (MAX_W, MAX_H), bg_color) 
draw = ImageDraw.Draw(im)
font = ImageFont.truetype('NanumSquareRoundB.ttf', size=46) #글씨체 및 글씨 크기 설정
font_color = 'rgb(0, 0, 0)' #글씨 색 설정 -> 검정색

current_h, pad = 160, 10 #글이 시작될 위치 및 줄간격

for line in para:
    w, h = draw.textsize(line, font=font)
    draw.text(((MAX_W - w) / 2, current_h), line, font=font, fill=font_color) # 가운데 정렬
    current_h += h + pad #다음 줄이 작성될 위치

im.save('test.png') #test.png 로 저장

실행하면, 맨 위의 예시와 같은 이미지가 만들어진다. 

사이즈, 배경색, 글씨체, 글씨크기, 위치 등은 모두 임의 설정이 가능하다.

 

 

 

코드2

 

이제 사용자로부터 입력을 받는 함수 형식으로 만들어, 편리하게 사용할 수 있도록 하겠습니다.

 

thumnail.py

# coding: utf-8

from PIL import Image, ImageDraw, ImageFont
import textwrap

def run(astr):

    para = textwrap.wrap(astr, width=11)

    MAX_W, MAX_H = 480, 480
    bg_color = 'rgb(214, 230, 245)'

    im = Image.new('RGB', (MAX_W, MAX_H), bg_color) 
    draw = ImageDraw.Draw(im)
    font = ImageFont.truetype('NanumSquareRoundB.ttf', size=46)
    font_color = 'rgb(0, 0, 0)'

    current_h, pad = 160, 10 

    for line in para:
        w, h = draw.textsize(line, font=font)
        draw.text(((MAX_W - w) / 2, current_h), line, font=font, fill=font_color)
        current_h += h + pad 

    im.save('{}.png'.format(astr[:8])) # 제목의 8자까지 잘라서 파일명으로 입력
    return 

if __name__ == "__main__":
    astr = input("제목을 입력하세요.\n")
    run(astr)
    print("done")

 

설명

 - 함수 형태로 만들어서 텍스트를 입력 값으로 받아 실행하도록 했습니다.

if __name__ == "__main__":
    astr = input("제목을 입력하세요.\n")
    run(astr)
    print("done")

 - 파일 제목은 입력 값에서 여덟 자까지 잘라서 저장하도록 했습니다.

    im.save('{}.png'.format(astr[:8])) # 제목의 8자까지 잘라서 파일명으로 입력

 

 

 

thumnail.py 실행결과

커맨드라인에서 실행하여 '티스토리 썸네일 이미지 만들기 테스트' 입력

 

생성된 썸네일 이미지

 

 

예전에 올린 게시물에도 썸네일 하나 만들어 넣었습니다.

파이썬은 정말 간단하고 편리해요..

 

댓글

Designed by JB FACTORY