본문 바로가기
  • 모바일 정보
파이썬

썸네일 이미지 자동으로 만들기 / 파이썬 / webp

by 리뷰하는 김과장 2022. 11. 29.

 

 
 

이번에는 파이썬으로 썸네일 이미지 자동으로 만들기 방법에 대해 자세히 알아보는 시간 가지도록 하겠습니다. 썸네일 제작은 각자 편한 방법이 있을텐데요 그중에서도 가장 편한방법을 연구하다보니 이렇게 파이썬으로 썸네일 제작하는방법을 알게되었습니다. 파이썬으로 썸네일 이미지 자동으로 만들기 방법에 대해 궁금하시다면 따라오세요~

 

 

 

1. 파이썬으로 썸네일 제작하기 준비물

 

일단 파이썬이라는 언어에 친숙하기 때문에 여기 까지 오게 되었겠죠~ 기본적인 파이썬 지식은 있을거라 생각하고 설명하도록 하겠습니다.

 

파이썬으로 이미지를 만들려면  PIL 이라는 라이브러리를 설치해야 합니다.

pip install pillow 명령어를 입력해서 PIL 라이브러리를 설치하세요.

 

 

KimNamyun.ttf
0.91MB

 

그리고 이쁜 폰트가 하나 필요한데요 제가 사용하는 폰트 하나 올려두겠습니다. 사용하실분은 사용하세요.

 

 

 

 

 

2. 파이썬으로 썸네일 제작하기 소스코드

 

아래가 전체 코드 입니다. 주석이 있기 때문에 이해하는데 문제는 없을것 같네요~

 

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 = ImageFont.truetype("C:/KimNamyun.ttf", 70)    
    var_font_color = "#bbab9a" #글자색상   
    var_back_color = "#371722" #배경색상
    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_title_width_length = 7  # 한 라인의 Max 글자 수
    var_pad = 10  # 글 간격    
    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_y_point = var_max_h / 2 
    var_textsize_h = var_draw.textsize(var_title_wrap[0]
    , font=var_font)[1]   
    var_y_point = var_y_point 
    - (((var_textsize_h * var_len_line) 
    + (var_pad * (var_len_line - 1))) / 2) 
    + (var_textsize_h / 2)   
    for var_line in var_title_wrap: 
        var_draw.text((var_x_point, var_y_point)
        , var_line
        , var_font_color
        , anchor=var_anchor
        , font=var_font
        , stroke_width=0
        , stroke_fill=var_stroke_color) 
        var_y_point = var_y_point + var_textsize_h + var_pad  
    var_img.save(save_path) 
    var_img.show()
    
make_thumb("d:/test.jpg", "파이썬으로 썸네일 만들기 테스트")

 

 

수정해야할 부분만 알려드리도록 하겠습니다.


이미지의 가로폭과 세로높이 사이즈를 지정하는 부분입니다.

    var_max_w = 500 #이미지 폭
    var_max_h = 500 #이미지 높이

이부분은 폰트 주소를 설정하는 부분입니다. 앞에 제가 소개한 폰트를 다운로드 하셨다면 저장한 위치를 아래 소스에 입력해주세요.

 

 var_font = ImageFont.truetype("C:/KimNamyun.ttf", 70)

 


아래는 배경색상과 글자색상을 지정하는 부분입니다. 제가 미리 설정한 색상이 마음이 들지 않으시면 마음에 드는 색상으로 수정해서 사용하세요. 색상표는 여기를 참고하세요.

 

var_font_color = "#bbab9a" #글자색상   
var_back_color = "#371722" #배경색상

 


앞부분은 함수이고 실제 실행시키는 명령어는 아래 코드입니다.

 

make_thumb("d:/test.png", "파이썬으로 썸네일 만들기 테스트")

 

저장될 이미지 주소와 썸네일 문구를 적당히 수정하시면 됩니다.

이미지 형식은 PNG, JPG 이렇게 가능합니다.

 

 

 

3. 만들어진 썸네일 이미지를 webp 로 변환하기

 

이미지 파일은 webp 파일이 가장 좋습니다. 구글에서 밀고 있는 확장자 이기도 하며 이미지 용량을 줄일수가 있어서 이미지 로딩 시간을 단축할수가 있어서 seo 에도 도움이 됩니다. 썸네일 처럼 이미지가 크지 않을때 더욱 용량차이가 많이 납니다. 이미지가 고화질이고 크기가 클때는 jpg 나 png 파일에 비해 크게 차이가 없다는 실험결과도 있지만 이미지가 작다면 무조건 추천입니다.

 

webp 이미지로 변환할려면 유틸리티가 필요합니다. 필요한 유틸리티는 아래에서 다운로드 할수가 있습니다.

 

https://developers.google.com/speed/webp/docs/precompiled

 

사전 컴파일된 유틸리티  |  WebP  |  Google Developers

이 페이지는 Cloud Translation API를 통해 번역되었습니다. Switch to English 사전 컴파일된 유틸리티 컬렉션을 사용해 정리하기 내 환경설정을 기준으로 콘텐츠를 저장하고 분류하세요. cwebp, dwebp, WebP

developers.google.com

 

 

여기서 최신 버전을 받으실수가 있습니다. (빠른 링크>> libwebp-1.1.0-windows-x64.zip)

 

압축을 풀면 파일이 여러가지 나옵니다. 우리는 jpg 나 png 파일을  webp 확장자로 변환하는게 목표이기  때문에  cwebp.exe 파일만 있으면 됩니다. 다른건 없어도 됩니다. ^^

 

참고로 설명하자면  cwebp가 이미지 파일을 webp로 converter해주는 프로그램이고, dwebp는 webp를 decode하는 반대의 프로그램입니다.

 

cwebp.exe 파일의 기본 사용법은 아래소스를 참고하세요.

 

cwebp -q 80 image.png -o image.webp

 

자 이제 우리는 앞에 만들어 놓은 썸네일을 어떻게 webp 파일로 변경할것인지가 문제 입니다.

 

파이썬에서 사용하기 편하게 함수를 하나 만들어봤습니다.  아래가 전체 소스입니다.

import subprocess

def to_webp(png_path): 
    command2='C:/cwebp.exe -q 100 -m 6 -mt -progress "'+ png_path + '" -o "' + png_path.split(".")[0] + '.webp"'
   
    try:
        print(command2)
        process = subprocess.Popen(command2,stdout=subprocess.PIPE,universal_newlines=True)
        while process.poll() is None:
            output = process.communicate()[0]
            print(output,end="")
        print("\n===Done===\n")
    except Exception as eee:
        print("Error occur: {}".format(eee))

to_webp("d:/test.png")

 


아래 소스에서 cwebp.exe 의 경로는 수정하셔야 합니다. 현재 저장된 위치를 입력해주세요.

 command2='C:/cwebp.exe -q 100 -m 6 -mt -progress "'+ png_path + '" -o "' + png_path.split(".")[0] + '.webp"'

 


아래가 핵심 명령어 입니다. 변경하고자 하는 그림파일의 경로만 입력하면 같은 경로에 webp 파일을 만들어줍니다.

to_webp("d:/test.png")

 

 

 

 

 

이렇게 해서 파이썬으로 썸네일 이미지 자동으로 만들기 방법에 대해 자세히 알아보았습니다. 파이썬으로 썸네일 이미지 자동으로 만들기 방법에 대해 궁금하셨던분들에게는 유용한 정보가 되었을듯합니다. 다음에는 더욱 유용한 정보로 찾아올것을 약속드리며 이번 포스팅은 여기까지 하도록 하겠습니다. 오늘도 행복한 하루 되세요~ ^^

 

 

 

♥공감은 고래도 춤추게 합니다~ ^^

 

 

 

'파이썬' 카테고리의 다른 글

파이선 셀러리움 웹크롤링 총정리  (0) 2022.12.23

댓글