이 페이지에서

QImageIOPlugin Class

QImageIOPlugin 클래스는 이미지 형식 플러그인을 작성하기 위한 인터페이스를 정의합니다. 더 보기...

헤더: #include <QImageIOPlugin>
CMake: find_package(Qt6 REQUIRED COMPONENTS Gui)
target_link_libraries(mytarget PRIVATE Qt6::Gui)
qmake: QT += gui
상속: QObject

참고: 이 클래스의 모든 함수는 재진입 가능합니다.

공개 유형

flags Capabilities
enum Capability { CanRead, CanWrite, CanReadIncremental }

공개 함수

QImageIOPlugin(QObject *parent = nullptr)
virtual ~QImageIOPlugin()
virtual QImageIOPlugin::Capabilities capabilities(QIODevice *device, const QByteArray &format) const = 0
virtual QImageIOHandler *create(QIODevice *device, const QByteArray &format = QByteArray()) const = 0

상세한 설명

QImageIOPlugin은 QImageIOHandler 객체를 생성하기 위한 팩토리이며, 이 객체는 QImageReader 및 QImageWriter 에서 Qt에 다양한 이미지 형식에 대한 지원을 추가하기 위해 내부적으로 사용됩니다.

이미지 I/O 플러그인을 작성하려면 이 기본 클래스를 서브클래스로 만들고, 순수 가상 함수 capabilities() 및 create()를 재구현한 다음, Q_PLUGIN_METADATA() 매크로를 사용하여 클래스를 내보내면 됩니다. 자세한 내용은 Qt 플러그인 작성 방법을 참조하십시오.

이미지 형식 플러그인은 읽기(CanRead), 쓰기(CanWrite) 및 증분 읽기(CanReadIncremental)의 세 가지 기능을 지원할 수 있습니다. 하위 클래스에서 capabilities()를 재구현하여 해당 이미지 형식의 기능을 노출하십시오.

create() 메서드는 제공된 장치와 형식이 올바르게 설정된 QImageIOHandler 서브클래스의 인스턴스를 생성하고, 이 핸들러를 반환해야 합니다.

플러그인의 JSON 메타데이터 파일에는 플러그인이 지원하는 이미지 형식에 대한 정보와 해당 MIME 유형(형식별로 하나씩)이 포함되어야 합니다. 예를 들어, JPEG 플러그인의 경우 다음과 같이 작성할 수 있습니다:

{
  "Keys": [ "jpg", "jpeg" ],
  "MimeTypes": [ "image/jpeg", "image/jpeg" ]
}

플러그인마다 지원하는 기능이 다를 수 있습니다. 예를 들어, GIF 형식 읽기를 지원하는 플러그인과 쓰기를 지원하는 플러그인이 각각 하나씩 있을 수 있습니다. Qt는 ` capabilities()`의 반환 값에 따라 작업에 적합한 플러그인을 선택합니다. 여러 플러그인이 동일한 기능을 지원하는 경우, Qt는 임의로 하나를 선택합니다.

QImageIOHandler 및 Qt 플러그인 생성 방법도참조하십시오 .

멤버 유형 문서

enum QImageIOPlugin::Capability
flags QImageIOPlugin::Capabilities

이 열거형은 QImageIOPlugin 의 기능을 설명합니다.

상수상수값설명
QImageIOPlugin::CanRead0x1플러그인은 이미지를 읽을 수 있습니다.
QImageIOPlugin::CanWrite0x2플러그인은 이미지를 쓸 수 있습니다.
QImageIOPlugin::CanReadIncremental0x4이 플러그인은 이미지를 증분 방식으로 읽을 수 있습니다.

Capabilities 유형은 QFlags<Capability>에 대한 typedef입니다. 이 유형은 Capability 값들의 OR 조합을 저장합니다.

멤버 함수 문서

[explicit] QImageIOPlugin::QImageIOPlugin(QObject *parent = nullptr)

지정된 ` parent`를 사용하여 이미지 플러그인을 생성합니다. 이 메서드는 플러그인을 내보내는 moc 생성 코드에 의해 자동으로 호출됩니다.

[virtual noexcept] QImageIOPlugin::~QImageIOPlugin()

사진 형식 플러그인을 제거합니다.

이 함수를 명시적으로 호출할 필요는 없습니다. Qt는 플러그인이 더 이상 사용되지 않을 때 자동으로 해당 플러그인을 파기합니다.

[pure virtual] QImageIOPlugin::Capabilities QImageIOPlugin::capabilities(QIODevice *device, const QByteArray &format) const

device 의 데이터와 format 형식을 기반으로 플러그인의 기능을 반환합니다. device 가 0 인 경우, 해당 형식을 읽거나 쓸 수 있는지 여부를 단순히 보고해야 합니다. 그렇지 않은 경우, 주어진 형식(또는 format 가 비어 있을 때 플러그인이 지원하는 모든 형식)을 device 에서 읽거나 쓸 수 있는지 확인해야 합니다. 이때 device 의 상태를 변경하지 않고 수행해야 하며(일반적으로 QIODevice::peek()를 사용하여),

예를 들어, QImageIOPlugin 가 BMP 형식을 지원하고, format 가 비어 있거나 "bmp" 이며, 장치의 데이터가 "BM" 로 시작하는 경우, 이 함수는 CanRead 를 반환해야 합니다. format 가 "bmp" 이고, device 가 0 이며, 핸들러가 읽기와 쓰기를 모두 지원하는 경우, 이 함수는 CanRead | CanWrite 를 반환해야 합니다.

포맷 이름은 항상 소문자로 표기됩니다.

[pure virtual] QImageIOHandler *QImageIOPlugin::create(QIODevice *device, const QByteArray &format = QByteArray()) const

device 와 format 가 설정된 ` QImageIOHandler `의 하위 클래스를 생성하여 반환합니다. ` format `는 플러그인 메타데이터의 ` "Keys" ` 항목에 나열된 값 중 하나여야 하거나, 비어 있어야 합니다. 비어 있는 경우, ` device `의 데이터는 ` capabilities()` 메서드(마찬가지로 비어 있는 형식으로)에 의해 인식되었어야 합니다.

형식 이름은 항상 소문자로 표기됩니다.

© 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.