GIF처럼 느껴지는 SVG

6 hours ago 1

  • 움직이는 SVG 이미지고해상도를 유지하면서도 파일 크기가 매우 작음 (49KB)
  • 기존 GIF와 비슷한 시각적 효과를 주지만, 실제로는 SVG 애니메이션 기능을 활용
  • Github README.md 파일에서도 직접 사용할 수 있음
  • asciinemasvg-term-cli 툴을 이용해 터미널 세션 녹화 → SVG 애니메이션으로 변환 가능
  • SVG의 애니메이션 요소(<animate>, <animateTransform>, <animateMotion>)를 활용

움직이는 SVGs의 특징

  • SVG로 만든 움직이는 이미지는 기존 GIF처럼 보이지만, 실제로는 SVG의 벡터 기반 애니메이션 기능을 사용함
  • 이 방식은 파일 크기가 매우 작고, 화질 손실 없이 크기 변경 및 확대/축소가 가능
  • Github의 README.md 같은 곳에도 바로 활용 가능한게 큰 장점
  • 예시로, 49KB 크기의 고해상도 움직이는 parrot SVG가 소개됨

만드는 방법

  • asciinema를 통해 터미널 세션을 녹화함
  • 녹화된 asciinema 파일을 svg-term-cli 툴로 변환하여 SVG 애니메이션 파일로 만듦
  • 생성된 SVG 파일은 README.md에 쉽게 추가할 수 있음
  • 작성자는 bespoken 등 여러 프로젝트에서 이 방식을 적극 활용 중

SVG 애니메이션의 동작 원리

  • SVG 스펙에는 이미 애니메이션 기능이 내장되어 있음
    • <animate>: 개별 속성을 시간에 따라 애니메이션화함
    • <animateTransform>: 회전, 크기 조절, 이동 등 변환 애니메이션 적용 가능
    • <animateMotion>: 경로를 따라 객체를 움직임
  • svg-term-cli는 이러한 SVG의 내장 애니메이션 기능을 활용해 동작함

Read Entire Article