/WeatherFont-with-Vector

πŸŒ€β˜” Modification Algorithm of Hangul Font Contour Vector according to Weather

Primary LanguageJupyter Notebook

🌦 날씨에 λ”°λ₯Έ ν•œκΈ€ 폰트 μœ€κ³½μ„  벑터 λ³€ν˜• μ•Œκ³ λ¦¬μ¦˜

πŸ“• ν”„λ‘œμ νŠΈ μš”μ•½

1️⃣ 2️⃣ 3️⃣

폰트 벑터화λ₯Ό 톡해 μœ€κ³½μ„  λ””μžμΈμ„ λ³€ν˜•ν•˜μ—¬ λ‹€μ–‘ν•œ λ””μžμΈμ˜ 날씨 폰트λ₯Ό μƒμ„±ν•˜λŠ” ν”„λ‘œμ νŠΈ μž…λ‹ˆλ‹€. :)

πŸ“— ν”„λ‘œμ νŠΈ λ°°κ²½ 및 λͺ©μ 

  • 상황 정보에 따라 λ°”λ€” 수 μžˆλŠ” 벑터 폰트 기반의 ν•œκΈ€ 폰트 λ³€ν˜• 기술의 개발 ν•„μš”μ„±
  • 기쑴의 λž˜μŠ€ν„° 이미지가 μ•„λ‹Œ 벑터 λ°μ΄ν„°λ‘œ 폰트λ₯Ό λ³€ν˜•ν•˜λŠ” 기술의 ν•„μš”
  • 폰트 벑터화λ₯Ό ν†΅ν•œ λ””μžμΈ λ³€ν˜• κΈ°μˆ μ„ μ μš©ν•˜μ—¬ ν…μŠ€νŠΈλ₯Ό 보닀 자유둭게 κΎΈλ―Έκ³  감성을 ν’λΆ€ν•˜κ²Œ μ „λ‹¬ν•˜κ³ μž 함

πŸ“˜ ν”„λ‘œμ νŠΈ λͺ©ν‘œ

  • 벑터 데이터 기반의 λ””μžμΈ 기술 ν™œμš©
    • λ””μžμΈμ„ 자유둭게 μ‘°μž‘ν•  수 μžˆλ„λ‘ 폰트λ₯Ό 벑터화 ν›„ λ³€ν˜• ν•„μš”
    • 아웃라인(글리프)을 μΆ”μΆœν•˜μ—¬ λ‹€μ–‘ν•œ λ””μžμΈμ„ μ μš©ν•  수 μžˆλŠ” 방법을 μ‹œλ„ν•˜κ³ μž 함
  • 수치 정보에 따라 λ‹¬λΌμ§€λŠ” 직관적인 폰트 μŠ€νƒ€μΌ 제곡
    • 미세먼지 농도, μžμ™Έμ„  농도와 같은 ꡬ체적인 기상 수치 정보λ₯Ό ν™œμš©
    • 각 데이터가 λŒ€ν‘œν•˜λŠ” λ‚ μ”¨μ˜ 감성이 잘 λ°˜μ˜λ˜λ„λ‘ μŠ€νƒ€μΌ 섀계

🌞 λŒ€ν‘œ λ””μžμΈ

ꡬ름 μŠ΅λ„ 눈
    
λ­‰κ²Œλ­‰κ²Œ λΆ€ν’€μ–΄μ˜€λ₯Έ ꡬ름을 ν‘œν˜„ μŠ΅λ„κ°€ 높을 λ•Œμ˜ λˆμ κ±°λ¦Όμ„ ν‘œν˜„ 눈과 λˆˆμ‚¬λžŒμ΄ λ™κ·Έλž—κ²Œ μŒ“μΈ λͺ¨μŠ΅μ„ ν‘œν˜„

🌀 λ””μžμΈ 적용 μ „ν›„ 비ꡐ

기상정보 λ””μžμΈ 적용 μ „ λ””μžμΈ 적용 ν›„
ꡬ름
μžμ™Έμ„ 
λΉ„
눈
μŠ΅λ„
μ•„μ§€λž‘μ΄
λ°”λžŒ
먼지

🎨 폰트 벑터화 및 λ””μžμΈ κ³Όμ •

β‘  λ””μžμΈν•  κΈ€μžμ™€ 폰트λ₯Ό λΆˆλŸ¬μ˜΅λ‹ˆλ‹€.

πŸ” click!
f = font.open("fonts/font_file_name.ttf")

β‘‘ 뢈러온 κΈ€μžλ₯Ό λ²‘ν„°ν™”μ‹œμΌœ 글리프 묢음으둜 λ³€ν™˜ν•©λ‹ˆλ‹€.

πŸ” click!
def glyphcommands(f, ch):
    return Path([copy(cmd) for cmd in f.glyph(f.charmap[ord(ch)])])

def advancefor(f, ch):
    return f.advances[f.charmap[ord(ch)]]

β‘’ κΈ€μžλ₯Ό μ΄λ£¨λŠ” 각 κΈ€λ¦¬ν”„λ“€μ˜ λ°©ν–₯을 μ•Œμ•„λƒ…λ‹ˆλ‹€.

πŸ” clickhttps://github.com/pokmonlove/VectorFont/blob/5eaf1c8b9a342402268939638ea1012ddd1328de/Vectorfont/vectorfont_cloud.ipynb?short_path=01f60ac#L180-L214
β‘£ λ””ν…ŒμΌν•œ λ””μžμΈμ„ μœ„ν•΄ 글리프λ₯Ό 잘라 μž¬κ΅¬μ„±ν•©λ‹ˆλ‹€.
β‘€ 자λ₯Έ 글리프듀을 2μ°¨ ν˜Ήμ€ 3μ°¨ 베지어 κ³‘μ„ μœΌλ‘œ λ³€κ²½ν•©λ‹ˆλ‹€.
β‘₯ 각 κΈ€λ¦¬ν”„μ˜ λ°©ν–₯κ³Ό λ””μžμΈμ— 따라 κΈ€λ¦¬ν”„μ˜ μ œμ–΄μ μ„ μ΄λ™μ‹œν‚΅λ‹ˆλ‹€.
⑦ λ””μžμΈμ„ μ μš©μ‹œν‚΅λ‹ˆλ‹€.

βœ… μ‚¬μš©ν•œ 폰트

βœ… Install

이 ν”„λ‘œμ νŠΈλŠ” Bezmerizing 라이브러리λ₯Ό μ‚¬μš©ν•©λ‹ˆλ‹€.

import sys
!{sys.executable} -m pip install --upgrade https://github.com/aparrish/bezmerizing/archive/master.zip

βœ… Module & Packages

πŸ” click!
import math
import random
import numpy as np
from flat import document, rgb, rgba, font, strike, shape
from flat.command import moveto, quadto, curveto, lineto, closepath
from bezmerizing import Polyline, Path
from numpy.random import uniform, normal, choice
from copy import copy
from random import randrange
from IPython.display import SVG, displa

πŸ’˜ Inspired by

Allison Parrish's Notebook on Manipulating Font Data

Flat + Bezmerizing 라이브러리λ₯Ό μ΄μš©ν•œ 폰트 벑터화 & λ””μžμΈ

πŸ’¬ References

πŸ‘©β€πŸ’» Authors

μˆ™λͺ…μ—¬μžλŒ€ν•™κ΅ λŒ€ν•™μ› IT곡학과 | MINTLAB | νŒ€ μ˜€ν† ν°νŠΈ