Qt의 벡터 이미지 형식
Qt는 그래픽 데이터를 불러오기 위한 다양한 표준 파일 형식을 지원하므로, 애플리케이션에서 다른 도구로 제작된 콘텐츠를 가져올 수 있습니다.
이 문서에서는 벡터 이미지에 중점을 두고, Qt 애플리케이션에서 사용할 벡터 그래픽 콘텐츠를 제작할 때 고려해야 할 사항에 대해 다룹니다.
참고: Qt의 2D 그래픽 지원에대한 일반적인 정보는 Qt 문서의 2D 그래픽을 참조하십시오.
파일 형식: SVG
SVG 파일은 다음 두 가지 방법으로 불러올 수 있습니다 Qt Quick: Image 컴포넌트를 사용하여 소프트웨어 래스터화 된 이미지로 로드하거나, VectorImage 를 사용하여 하드웨어 가속 렌더링을 적용하는 방법( svgtoqml을 사용하여 파일을 미리 변환하는 경우 포함)이 있습니다.
또한, QSvgRenderer 는 소프트웨어 래스터라이저에 대한 일반적인 액세스 기능을 제공합니다. QSvgWidget 및 QGraphicsSvgItem 는 SVG 콘텐츠를 애플리케이션에 통합하기 위한 편리한 API를 제공합니다. Qt Widgets 통합하기 위한 편리한 API를 제공합니다.
기본적으로 Qt SVG는 SVG 1.2 Tiny 프로파일의 정적 기능을 지원합니다. 이 프로파일이 지원하는 기능에 대한 자세한 목록은 SVG 1.2 Tiny 사양에서 확인할 수 있습니다.
또한, 특정 확장 기능도 지원됩니다.
SVG의 대화형 기능은 지원되지 않지만, 대화형 기능은 다음 중 어느 쪽에서나 쉽게 구현할 수 있습니다. Qt Quick 또는 Qt Widgets를 사용하여 쉽게 구현할 수 있습니다. SMIL 형식이나 CSS 키프레임을 사용하는 일부 특정 애니메이션 유형도 지원됩니다.
다음은 예상되는 내용을 개괄적으로 파악할 수 있도록 지원 및 미지원 기능에 대한 개략적인 목록입니다. 미지원 기능은 가능한 한 무시되므로, 미지원 기능에 의존하는 SVG 파일도 여전히 표시되지만 누락이나 오류가 발생할 수 있습니다.
| 변환 | 지원됨 |
| 위치 | 👍 |
| 확대/축소 | 👍 |
| 교대 근무 | 👍 |
| 기울기 | 👍 |
| 도형 | 지원되는 |
| 타원/원 | 👍 |
| 사각형 | 👍 |
| 다중선 및 다각형 | 👍 |
| 베지어 경로 | 👍 |
| 마커 | 👍 |
| 기호 | 👍 |
| 도형 렌더링 가능 | 지원됨 |
| 채우기 | 👍 |
| 선 | 👍 |
| 선형 그라데이션 | 👍 |
| 방사형 그라데이션 | 👍 |
| 원뿔형 그라데이션 | 👍 |
| 패턴 | 👍 |
| 그라데이션 획 | 👍 |
| 스트로크 끝단 | 👍 |
| 선 연결 | 👍 |
| 선 스타일 (점선 등) | 👍 |
| 장식용 획 | 👍 |
| 텍스트 | 지원됨 |
| 스팬 | 👍 |
| 글리프 | 👍 |
| 후처리 효과 | 지원됨 |
| 마스크 | 👍 |
| feColorMatrix | 👍 |
| feFlood | 👍 |
| feOffset | 👍 |
| feGaussianBlur | 👍 |
| feMerge | 👍 |
| 나머지 필터 | 🚫 |
| CSS 애니메이션 | 지원됨 |
| 색상 | 👍 |
| 그라데이션 | 👍 |
| 불투명도 | 👍 |
| 변형 | 👍 |
| 경로 오프셋 | 👍 |
| 모션 경로 | 👍 |
| 이징 커브 | 👍 |
| 기타 속성 | 🚫 |
| SMIL 애니메이션 | 지원됨 |
| animateTransform | 👍 |
| animateColor | 👍 |
| animate | 🚫 |
| animateMotion | 🚫 |
| set | 🚫 |
| 기타 | 지원됨 |
| 래스터 이미지 | 👍 |
| 요소사용 | 👍 |
| 요소전환 | 👍 |
| 클립 경로 | 🚫 |
| 멀티미디어 | 🚫 |
| 스크립팅 | 🚫 |
| 연결 | 🚫 |
파일 형식: Lottie
SVG와 마찬가지로, Qt에서 Lottie 형식의 파일을 불러오는 방법에는 여러 가지가 있습니다.
LottieAnimation 유형은 QSvgRenderer 가 SVG에 대해 수행하는 방식과 매우 유사하게, 이미지를 불러와 소프트웨어 래스터라이저를 사용하여 표시합니다.
또한, VectorImage 와 lottietoqml 도구를 사용하면 하드웨어 가속 렌더링이 가능합니다.
VectorImage vectorimageformats 를 통해 Lottie 파일을 사용하려면, Qt Lottie Animation 모듈에 포함된 VectorImage 플러그인을 애플리케이션과 함께 배포해야 합니다. 또한, 의 assumeTrustedSource 속성을 true 로 설정해야 합니다. 애니메이션 재생에 대한 세부적인 제어 방법은 LottieVectorImageController 에서 확인할 수 있습니다.
lottietoqml 도구를 사용하여 Lottie 소스 파일을 QML로 미리 변환할 수 있습니다. 이에 대한 예제는 lottietoqml 예제에서 확인할 수 있습니다.
다음은 LottieAnimation 유형(소프트웨어 래스터라이저)과 VectorImage ( lottietoqml을 사용한 파일 사전 변환 포함)에서 지원하는 주요 기능 목록입니다.
| 변환 | 지원됨 |
| 위치 | 👍 |
| 확대/축소 | 👍 |
| 교대 근무 | 👍 |
| 기울기 | 👍 |
| 불투명도 | 👍 |
| 고정점 | 👍 |
| 자동 방향 조정 | 👍 |
| 도형 | 지원되는 도형 |
| 타원/원 | 👍 |
| 사각형 | 👍 |
| 둥근 사각형 | 👍 |
| 다각형 | 👍 |
| 베지어 경로 | 👍 |
| 트리밍된 경로 | 👍 |
| 도형 렌더링 가능 | 지원됨 |
| 채우기 | 👍 |
| 선 | 👍 |
| 선형 그라데이션 | 👍 |
| 방사형 그라데이션 | 👍 |
| 그라데이션 획 | 👍 |
| 스트로크 캡 | 👍 |
| 선 연결 | 👍 |
| 선 스타일 (점선 등) | 👍 |
| 텍스트 | 지원됨 |
| 채우기 | 👍 |
| 선 | 🚫 |
| 글꼴 | 👍 |
| 글리프 | 👍 |
| 후처리 효과 | 지원됨 |
| 알파 매트 | 👍 |
| 휘도 매트 | 👍 |
| 레이어 효과 | 🚫 |
| 병합된 경로 | 지원됨 |
| 추가 | 👍 |
| 빼기 | 🚫 |
| 교집합 | 🚫 |
| 마스크 | 지원됨 |
| 마스크 경로 | 👍 |
| 합집합 | 👍 |
| 추가 연산 | 🚫 |
| 애니메이션 | 지원됨 |
| 색상 | 👍 |
| 그라데이션 | 👍 |
| 불투명도 | 👍 |
| 변형 | 👍 |
| 경로 보간 | 👍 |
| 트리밍 | 👍 |
| 마커 | 🚫 |
| 병합된 경로 | 🚫 |
| 남은 속성 | 🚫 |
| 이징 커브 | 👍 |
| 시간 확장 | 👍 |
| 시간 재매핑 | 👍 |
| 기타 | 지원됨 |
| 래스터 이미지 | 👍 |
| 프리컴프 레이어 | 👍 |
| 수식 | 🚫 |
파일 형식: 벡터 이미지 형식의 글꼴 파일
SVG와 같은 기존의 벡터 그래픽 형식 외에도, 벡터 그래픽 자산을 글리프로 저장한 사용자 정의 글꼴 파일을 활용할 수도 있습니다.
이 방식의 장점은 간단한 일러스트레이션을 텍스트 레이블에 인라인으로 삽입할 수 있으며, 텍스트와 유사한 타이포그래피 속성을 가질 수 있다는 점입니다. 이는 결과적으로 이미지와 텍스트의 정렬을 더 쉽게 만들어 줍니다.
이러한 목적으로 글꼴 파일을 사용하는 것은 대규모 아이콘 라이브러리를 배포하거나, 실행 시점에 교체할 수 있는 테마를 제공하는 데에도 편리한 방법입니다.
그러나 Qt에서의 글꼴 사용은 텍스트 생성에 최적화되어 있으므로, VectorImage 와 같은 특화된 벡터 이미지 컴포넌트의 대안으로 아이콘 글꼴을 사용할 때는 몇 가지 고려 사항이 있습니다.
우선, 컬러 폰트는 항상 지정된 픽셀 크기로 미리 래스터화됩니다. 즉, 이러한 텍스트 항목에 변환을 적용하면 스케일링 아티팩트가 발생합니다. 예를 들어 확대/축소가 필요한 일러스트레이션의 경우, VectorImage 를 사용하는 것이 더 바람직합니다.
애니메이션이 포함된 벡터 이미지의 경우에도 전용 컴포넌트를 사용하는 것이 더 바람직합니다. 가변 폰트 형식 확장 기능을 통해 모핑 애니메이션이 가능하긴 하지만, 이는 Qt의 폰트 시스템이 최적화되어 있는 용도가 아닙니다. 따라서 폰트의 가변 축을 애니메이션화하는 것은 다른 벡터 이미지 형식을 사용하는 것보다 효율이 떨어집니다.
따라서 애니메이션이 적용되거나 다색 벡터 이미지의 경우, 일반적으로 SVG와 같은 형식을 사용하는 것이 바람직합니다. 단색의 정적 이미지의 경우, 폰트를 사용하는 것이 몇 가지 편의성을 제공하는 선택지가 될 수 있습니다.
참고: Qt Quick Controls 의 표준 아이콘 지원 항목도참조하십시오 .
© 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.