SVG 최적화
Last updated
Last updated
SVGO의 GUI 온라인 서비스입니다. 사용법은 간단합니다. 좌측 사이드바 메뉴의 Open SVG
항목을 눌러 사용자 로컬 컴퓨터에서 SVG 파일을 업로드 하거나, Paste Markup
항목을 눌러 복사한 SVG 코드를 붙여넣고 우측 사이드바 메뉴에서 설정할 옵션을 체크/해제합니다. 최종적으로 최적화된 코드를 클립보드에 복사 하거나, 파일로 저장할 수 있습니다.
보안을 이유로 온라인 환경을 사용할 수 없는 사용자라면 로컬 컴퓨터 환경에서도 사용할 수 있습니다. svgomg GitHub 저장소를 Fork 한 후 git clone
명령을 실행해 로컬 컴퓨터로 자료를 다운로드 받습니다.
개발에 필요한 의존 모듈을 로컬 컴퓨터에 설치합니다.
개발 서버를 실행한 후, 사용합니다.
SVGO Compressor는 Sketch 디자인 도구의 플러그인 입니다. 플러그인 설치 후, Preferences > Plugins
메뉴에서 SVGO Compressor
항목을 체크하면 SVG 에셋을 내보낼 때 자동 처리됩니다. 필요하다면 svgo.json
파일을 수정해 사용자 정의 옵션 설정도 가능합니다.
SVGO(SVG Optimizer)는 SVG 벡터 그래픽 파일을 최적화하기위한 Nodejs 기반 도구입니다.
다양한 그래픽 디자인 도구에서 출력된 SVG 파일은 대부분 불필요한 정보가 많이 포함되어 있습니다. SVG 렌더링 결과에 영향을 미치지 않는 디자인 도구의 메타 데이터, 주석, 숨겨지거나 사용 되지 않는 요소 또는 최적이 아닌 값 등등을 안전하게 제거하거나 변환 할 수 있습니다.
SVGO의 작동 원리가 궁금하다면 hot it works(번역) 글을 읽어보세요.
NPM 설치 명령을 사용하여 svgo 개발 모듈을 전역에 설치합니다.
SVGO은 플러그인 기반 아키텍처로 거의 모든 최적화가 별도의 플러그인 입니다.
※ 접근성, 반응형 웹 디자인과 관련된 설정(*
)은 사용하면 안됩니다.
Grunt – grunt-svgmin
Gulp – gulp-svgmin
Mimosa – mimosa-minify-svg
OSX Folder Action – svgo-osx-folder-action
webpack loader – image-webpack-loader
Telegram Bot – svgo_bot
PostCSS plugin – postcss-svgo
Inkscape plugin – inkscape-svgo
Sketch plugin - svgo-compressor
macOS app - Image Shrinker
플러그인
설명
줄 바꿈, 후행, 반복 공간 정리 속성
doctype
선언 제거
XML 프로세싱 인스트럭션 제거
주석 삭제
<metadata>
제거
<title>
제거 *
<desc>
제거 *
<defs>
내부에 사용되지 않는 요소의 id
제거
xmlns
속성 제거
에디터 네임스페이스, 요소/속성 제거
속성 값이 빈 경우 제거
숨겨진 요소 제거
빈 텍스트 요소 제거
빈 컨테이너 요소 제거
viewBox
속성 제거 *
enable-background
속성 제거
CSSO를 이용하여 <style> 콘텐츠 최적화
CSS스타일을 속성으로 변경
rgb()
➔ #rrggbb
/ #rrggbb
➔ #rgb
상대 패스, 절대 패스로 패스 데이터를 변환, 세그먼트를 다른 세그먼트로 변환, 쓸모없는 구분 기호를 제거, 스마트 한 반올림 등
나눠진 트랜스폼을 하나로 축소하고, 행렬(matrix)을 짧은 코드로 변환
알 수 없는 요소 내용 및 속성 제거, 기본값으로 attrs
제거
상속받지 않는 그룹의 presentation
속성 제거
불필요한 stroke
, fill
속성 제거
사용 되지 않는 네임스페이스 선언 제거
사용 되지 않은 ID 제거, 사용된 ID 축약(이름 변경)
숫자 값을 고정된 정밀도로 반올림, px
단위 제거
viewBox
속성의 숫자 값 반올림
요소 속성을 그룹 요소로 이동
그룹 요소 속성을 요소로 이동
불필요한 그룹 접기
래스터 이미지 제거 (기본 값: 비활성화)
여러 패스를 하나로 병합
기본 도형을 <path> 요소로 변경
요소 속성 정렬 (기본 값: 비활성화)
viewBox
속성이 있을 경우, width
/height
속성 제거
패턴에 따라 속성 제거 (기본 값: 비활성화)
ID, className으로 임의 요소 제거 (기본 값: 비활성화)
<svg>
요소에 클래스 이름 추가 (기본 값: 비활성화)
<svg>
요소에 속성 추가 (기본 값: 비활성화)
<style>
요소 제거 (기본 값: 비활성화)
<script>
요소 제거 (기본 값: 비활성화)