이 페이지에서

Qt의 벡터 이미지 포맷(Vector Image Formats)

Qt는 그래픽 데이터 로드를 위한 많은 표준 파일 형식을 지원하므로, 다른 툴에서 생성된 콘텐츠를 가져올 수 있습니다.

이 문서에서는 벡터 이미지에 초점을 맞추고, Qt 응용 프로그램에서 사용할 벡터 그래픽 콘텐츠를 제작할 때 고려해야 할 사항에 대해 설명합니다.

참고: Qt의 2D 그래픽 지원에 대한 일반적인 정보는 Qt의 2D 그래픽 문서를 참조하십시오.

파일 형식: SVG

SVG 파일은 다음 두 가지 방법으로 로드할 수 있습니다. Qt Quick: 이미지 컴포넌트를 사용하여 소프트웨어 래스터화된 이미지로, 또는 VectorImage 를 사용하여 하드웨어 가속 렌더링으로 ( svgtoqml을 사용하여 파일을 미리 변환하는 방법 포함).

또한 QSvgRenderer 에서는 소프트웨어 래스터라이저에 대한 일반적인 액세스를 제공합니다. QSvgWidgetQGraphicsSvgItem 에서는 SVG 콘텐츠를 애플리케이션에 통합하기 위한 Qt Widgets 애플리케이션에 통합하기 위한 편리한 API를 제공합니다.

기본적으로 Qt는 SVG 1.2 Tiny 프로파일의 정적 기능을 지원합니다. 이 프로파일에서 지원되는 기능의 자세한 목록은 SVG 1.2 Tiny 사양에서 확인할 수 있습니다.

또한 일부 확장 기능도 지원됩니다. 이러한 기능은 현재 소프트웨어 래스터라이저에서만 지원되며 VectorImage 또는 svgtoqml의 하드웨어 가속 렌더러에서는 지원되지 않습니다.

SVG의 인터랙티브 기능은 지원되지 않지만 상호 작용은 Qt Quick 또는 Qt Widgets. 일부 특정 애니메이션 유형도 SMIL 형식 또는 CSS 키프레임을 사용하여 지원됩니다.

다음은 지원되는 기능 및 지원되지 않는 기능의 개괄적인 목록으로 무엇을 기대할 수 있는지에 대한 개요를 제공합니다. 지원되지 않는 기능은 가능한 한 무시되므로 지원되지 않는 기능에 의존하는 SVG 파일은 계속 표시되지만 누락 또는 오류가 있을 수 있습니다.

상위 레벨 기능소프트웨어 래스터라이저VectorImage코멘트
변형
기본 도형원, 직사각형, 타원, 선, 폴리라인 및 다각형
임의 도형임의의 베지어 커브와 선으로 만든 복합 경로.
래스터 이미지임베드 및 파일 시스템에 저장됨
간접 경로특히 '사용' 요소
조건부 처리특히 "스위치" 요소
간단한 텍스트 레이아웃
임베디드 글꼴
단색 채우기
그라데이션 채우기
사용자 정의 가능한 스트로크사용자 지정 가능한 너비, 선 캡, 선 조인 및 대시
코스메틱 스트로크아니요뷰에 따라 배율이 조정되지 않는 윤곽선
그라데이션 스트로크
멀티미디어아니요아니요
스크립팅아니요아니요
연결아니요아니요

또한 SVG 1.1 및 SVG 2.0에서 다음과 같은 확장 기능이 지원됩니다:

고급 기능소프트웨어 래스터라이저VectorImage코멘트
마스크
클립 경로아니요아니요
패턴아니요
마커아니요
재사용 가능한 기호
후처리 필터feColorMatrix, feFlood, feGaussianBlur, feOffset 및 feMerge.

마지막으로 다음과 같은 프로퍼티 애니메이션이 지원됩니다(여기에 나열되지 않은 애니메이션은 현재 지원되지 않습니다). 최상의 결과를 얻으려면 애니메이션을 CSS 키프레임 형식으로 내보내야 합니다.

애니메이션 기능소프트웨어 래스터라이저VectorImage코멘트
변형 애니메이션
컬러 애니메이션
불투명도 애니메이션
오프셋 경로 애니메이션경로를 따라 항목 위치 및 방향 애니메이션 적용

파일 형식: Lottie

SVG와 마찬가지로 Qt에서 Lottie 형식의 파일을 로드하는 방법에는 여러 가지가 있습니다.

LottieAnimation 유형은 이미지를 로드하고 소프트웨어 래스터라이저를 사용하여 표시하며, 이는 SVG의 경우 QSvgRenderer 와 매우 유사합니다.

또한 VectorImagelottietoqml 도구를 사용하여 하드웨어 가속 렌더링이 가능합니다.

VectorImage 에서 로티 파일을 사용하려면 vectorimageformats 플러그인에 포함된 Qt Lottie Animation 모듈에 포함된 플러그인을 애플리케이션과 함께 배포해야 합니다. 또한 VectorImageassumeTrustedSource 속성을 true 로 설정해야 합니다.

lottietoqml 도구를 사용하여 Lottie 소스 파일을 QML로 사전 변환할 수 있습니다. 이에 대한 예는 lottietoqml 예제에서 찾을 수 있습니다.

다음은 LottieAnimation 유형(소프트웨어 래스터라이저) 및 VectorImage ( lottietoqml을 사용한 파일 사전 변환 포함)에서 지원하는 상위 수준 기능의 목록입니다.

상위 수준 기능LottieAnimationVectorImage설명
변환
셰이프
솔리드 채우기
그라데이션 채우기
사용자 정의 가능한 스트로크사용자 지정 가능한 너비, 선 캡, 선 조인 및 대시
그라데이션 스트로크아니요아니요
이미지 레이어임베디드 데이터만
사전 컴포지션 레이어
경로 트리밍
매트
마스크아니요아니요
리피터아니요
레이어 효과채우기 효과만아니요
텍스트 레이어아니요아니요
멀티미디어아니요아니요오디오 및 카메라 레이어는 지원되지 않습니다.
표현식아니요아니요
3D 레이어아니요아니요
시간 리매핑아니요아니요

원칙적으로 로티 형식의 거의 모든 프로퍼티에 애니메이션을 적용할 수 있습니다. 애니메이션이 가능한 프로퍼티를 광범위하게 지원하려면 LottieAnimation 을 사용하세요. VectorImage 유형(및 lottietoqml)은 애니메이션을 만드는 데 일반적으로 사용되는 프로퍼티의 일부 하위 집합을 지원합니다.

상위 수준 기능LottieAnimationVectorImage댓글
애니메이션 변형
경로 트림 애니메이션
색상 애니메이션
불투명도 애니메이션
경로 애니메이션도형의 제어점 애니메이션을 모핑합니다.
경로를 따라 이동경로를 따라 항목 위치 및 방향 애니메이션화하기
기타 속성 애니메이션아니요

파일 형식: 벡터 이미지 형식의 글꼴 파일

SVG와 같은 기존의 벡터 그래픽 형식 외에도 벡터 그래픽 자산이 글리프로 저장된 사용자 정의 글꼴 파일을 활용할 수 있습니다.

이 경우 텍스트 라벨에 텍스트와 유사한 타이포그래피 속성으로 간단한 일러스트를 인라인으로 넣을 수 있다는 장점이 있습니다. 따라서 이미지와 텍스트의 정렬을 더 쉽게 할 수 있습니다.

이러한 목적으로 폰트 파일을 사용하면 대용량 아이콘 라이브러리를 배포하는 데 편리할 뿐만 아니라 런타임에 교체할 수 있는 테마를 제공할 수 있습니다.

그러나 Qt에서의 폰트 사용은 텍스트 생성에 최적화되어 있으므로 VectorImage 와 같은 특수 벡터 이미지 컴포넌트의 대안으로 아이콘 폰트를 사용할 때 몇 가지 고려해야 할 사항이 있습니다.

우선, 컬러 글꼴은 항상 지정된 픽셀 크기로 미리 래스터화됩니다. 즉, 이러한 텍스트 항목에 변환을 적용하면 크기 조정 아티팩트가 발생할 수 있습니다. 예를 들어 확대/축소가 필요한 일러스트레이션의 경우 VectorImage 을 사용하는 것이 좋습니다.

애니메이션 벡터 이미지의 경우에도 특수 구성 요소를 사용하는 것이 좋습니다. 가변 폰트 포맷 확장을 사용하면 모핑 애니메이션이 가능하지만, 이는 Qt의 폰트 시스템이 최적화된 용도는 아닙니다. 따라서 글꼴의 가변 축을 애니메이션화하는 것은 다른 벡터 이미지 포맷을 사용하는 것보다 효율성이 떨어집니다.

따라서 애니메이션 및/또는 다색 벡터 이미지의 경우 일반적으로 SVG와 같은 형식을 사용하는 것이 좋습니다. 단색의 정적인 이미지의 경우 글꼴을 사용하는 것이 편리한 옵션입니다.

© 2026 The Qt Company Ltd. Documentation contributions included herein are the copyrights of their respective owners. The documentation provided herein is licensed under the terms of the GNU Free Documentation License version 1.3 as published by the Free Software Foundation. Qt and respective logos are trademarks of The Qt Company Ltd. in Finland and/or other countries worldwide. All other trademarks are property of their respective owners.