svgtoqml
svgtoqml 는 Qt에 포함된 명령줄 도구로, SVG 문서를 QML 파일로 변환합니다. 이렇게 생성된 QML 파일은 Qt Quick 애플리케이션에서 컴포넌트로 사용할 수 있습니다. ‘일기 예보 예제’에는 이 도구를 사용하여 생성된 여러 QML 파일이 포함되어 있습니다.
개요
svgtoqml 은 SVG 파일을 Qt Quick 프리미티브를 사용하는 QML 파일로 변환합니다. Qt Quick 가 확장 가능한 벡터 그래픽(SVG)을 지원하므로, 결과 항목은 가능한 한 부드럽게 변환될 수 있습니다. 기본적으로 이 도구는 SVG Tiny 1.2 프로파일의 대부분의 정적 기능을 지원합니다. 경우에 따라 일부 추가 기능도 지원됩니다. 상호작용 기능과 애니메이션은 지원되지 않습니다.
사용법
svgtoqml 의 기본 사용법은 입력 파일과 출력 파일을 지정하는 것입니다: svgtoqml input.svg output.qml. 이 명령은 input.svg 파일을 읽어 output.qml 의 해당 Qt Quick 장면으로 변환하며, 이 장면은 Qt Quick 애플리케이션의 일부로 사용할 수 있습니다.
또한 다음 옵션을 지원합니다:
| 옵션 | 설명 |
|---|---|
--no-assume-trusted-source | 입력 파일이 신뢰할 수 없는 파일임을 나타내며, 추가적인 검사 및 제한을 활성화해야 함을 의미합니다. 기본적으로 SVG 파일은 AssumeTrustedSource option 를 사용하여 파싱됩니다. 이 인수를 전달하면 해당 옵션이 해제됩니다. |
--copyright-statement <string> | 생성된 파일의 시작 부분에 <string>을 주석으로 추가합니다. |
-c, --curve-renderer | 다음에 대한 곡선 렌더러 백엔드를 활성화합니다 Qt Quick Shapes. 이를 통해 멀티샘플링 없이도 씬 내에서 부드럽고 앤티앨리어싱 처리된 도형을 사용할 수 있지만, 약간의 추가 비용이 발생합니다. |
-a, --asynchronous-shapes | 생성된 씬 내의 모든 Shape 요소에 대해 {QtQuick.Shapes::Shape::asynchronous}{asynchronous} 모드를 활성화합니다. 이를 통해 CPU 활용도와 반응성을 향상시킬 수 있습니다. |
-p, --optimize-paths | 경로를 QML 파일에 반영하기 전에 최적화를 활성화하여, 나중에 경로를 더 빠르게 불러오고 렌더링할 수 있도록 합니다. |
--outline-stroke-mode | 원래 경로 대신 채워진 도형의 윤곽선을 그립니다. |
-t, --type-name <string> | Shape 대신, 출력물에서는 <string> 유형명을 사용합니다. 이를 통해 사용자 정의 항목을 사용하여 Shape 항목의 기본 동작을 재정의할 수 있습니다. |
-v, --view | 생성될 Qt Quick 항목의 미리보기를 표시합니다. |
qt_target_qml_from_svg() CMake 함수를 사용하면 빌드 과정에서 이 도구를 자동으로 호출할 수 있습니다.
다른 옵션과의 비교
Qt Quick 에 SVG 콘텐츠를 포함하는 방법에는 여러 가지가 있습니다. 다음은 svgtoqml 가 이러한 방법들 중에서 어떤 위치를 차지하는지에 대한 개요입니다.
다음과의 비교 Qt SVG
Qt SVG 는 SVG 파일을 위한 파서와 소프트웨어 렌더러를 제공하는 모듈입니다. 또한 이미지 로더 플러그인이 포함되어 있어, Qt Quick 의 Image 요소를 통해 SVG 파일을 직접 불러올 수 있습니다. 그러면 SVG는 지정된 크기로 래스터화되어 캐시되며, 다시 그리는데 드는 비용은 매우 적습니다. 하지만 화질 저하 없이 이미지를 확대하려면 다른 크기로 다시 불러와야 하므로, 이 과정에서 상당한 처리 비용이 발생할 수 있습니다.
svgtoqml (그리고 ` VectorImage ` 컴포넌트)는 동일한 콘텐츠를 렌더링하는 대안적인 방법입니다. 일단 Qt Quick 에 로드되면, GPU 메모리에 장면을 렌더링하는 데 필요한 기하 데이터는 유지한 채 변환을 변경할 수 있습니다. 따라서 벡터 이미지를 매우 적은 오버헤드로 다양한 배율에 맞춰 다시 그릴 수 있습니다.
그러나 애플리케이션의 수명 주기 동안 이미지 크기가 변하지 않는다면, SVG를 Image 로 불러오는 것이 더 효율적입니다. 이 경우, SVG가 가능한 크기 중 극히 일부에서만 렌더링된다면, PNG 와 같이 불러오기에 더 효율적인 이미지 형식으로 미리 래스터화하는 것을 고려해 보십시오.
VectorImage와의 비교
VectorImage 컴포넌트는 svgtoqml 와 동일한 기본 기능을 제공하지만, Qt Quick 장면을 QML 파일로 미리 생성하는 대신 런타임에 장면을 생성합니다. 이를 통해 빌드 시점에 제공되지 않는 SVG 파일을 로드할 수 있어 유연성이 더욱 높아집니다. svgtoqml 를 사용하여 씬을 미리 생성하면 씬이 로드되기 전에 최적화할 수 있습니다. 따라서 빌드 시점에 사용 가능한 파일의 경우, svgtoqml 를 사용하는 것이 권장됩니다.
PathSvg와의 비교
PathSvg 컴포넌트는 Qt Quick Shapes 모듈의 일부입니다. 이 컴포넌트는 SVG에서 사용하는 구문을 통해 경로를 정의할 수 있는 방법을 제공하며, 이때 경로의 제어점은 문자열로 지정됩니다. 이 컴포넌트는 SVG 파일 로딩을 지원하지 않으므로, svgtoqml 의 직접적인 대안은 아닙니다. 복잡한 SVG 파일에 애플리케이션에 필요한 특정 도형이 포함되어 있다면, 전체 파일을 생성하는 것보다 이 경로 설명을 PathSvg 로 복사하는 것이 더 편리할 수 있습니다.
© 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.