QImageReader Class
QImageReader 클래스는 파일이나 기타 장치에서 이미지를 읽기 위한 형식 독립적인 인터페이스를 제공합니다. 더 보기...
| 헤더: | #include <QImageReader> |
| CMake: | find_package(Qt6 REQUIRED COMPONENTS Gui) target_link_libraries(mytarget PRIVATE Qt6::Gui) |
| qmake: | QT += gui |
- 상속된 멤버를 포함한 모든 멤버 목록
- QImageReader는 Painting 클래스의 일부입니다.
참고: 이 클래스의 모든 함수는 재진입 가능합니다.
공개 유형
| enum | ImageReaderError { FileNotFoundError, DeviceError, UnsupportedFormatError, InvalidDataError, UnknownError } |
공개 함수
| QImageReader() | |
| QImageReader(QIODevice *device, const QByteArray &format = QByteArray()) | |
| QImageReader(const QString &fileName, const QByteArray &format = QByteArray()) | |
| ~QImageReader() | |
| bool | autoDetectImageFormat() const |
| bool | autoTransform() const |
| QColor | backgroundColor() const |
| bool | canRead() const |
| QRect | clipRect() const |
| int | currentImageNumber() const |
| QRect | currentImageRect() const |
| bool | decideFormatFromContent() const |
| QIODevice * | device() const |
(since 6.12) QSize | effectiveSize() const |
| QImageReader::ImageReaderError | error() const |
| QString | errorString() const |
| QString | fileName() const |
| QByteArray | format() const |
| int | imageCount() const |
| QImage::Format | imageFormat() const |
| bool | jumpToImage(int imageNumber) |
| bool | jumpToNextImage() |
| int | loopCount() const |
| int | nextImageDelay() const |
| int | quality() const |
| QImage | read() |
| bool | read(QImage *image) |
| QRect | scaledClipRect() const |
| QSize | scaledSize() const |
| void | setAutoDetectImageFormat(bool enabled) |
| void | setAutoTransform(bool enabled) |
| void | setBackgroundColor(const QColor &color) |
| void | setClipRect(const QRect &rect) |
| void | setDecideFormatFromContent(bool ignored) |
| void | setDevice(QIODevice *device) |
| void | setFileName(const QString &fileName) |
| void | setFormat(const QByteArray &format) |
| void | setQuality(int quality) |
| void | setScaledClipRect(const QRect &rect) |
| void | setScaledSize(const QSize &size) |
| QSize | size() const |
| QByteArray | subType() const |
| QList<QByteArray> | supportedSubTypes() const |
| bool | supportsAnimation() const |
| bool | supportsOption(QImageIOHandler::ImageOption option) const |
| QString | text(const QString &key) const |
| QStringList | textKeys() const |
| QImageIOHandler::Transformations | transformation() const |
정적 공용 멤버
(since 6.0) int | allocationLimit() |
| QByteArray | imageFormat(QIODevice *device) |
| QByteArray | imageFormat(const QString &fileName) |
| QList<QByteArray> | imageFormatsForMimeType(const QByteArray &mimeType) |
(since 6.0) void | setAllocationLimit(int mbLimit) |
| QList<QByteArray> | supportedImageFormats() |
| QList<QByteArray> | supportedMimeTypes() |
상세 설명
이미지를 읽는 가장 일반적인 방법은 QImage 및 QPixmap 의 생성자를 사용하거나, QImage::load() 및 QPixmap::load()를 호출하는 것입니다. QImageReader는 이미지를 읽을 때 더 많은 제어 기능을 제공하는 특수한 클래스입니다. 예를 들어, setScaledSize()를 호출하여 특정 크기로 이미지를 읽어올 수 있으며, setClipRect()를 호출하여 클립 영역을 선택함으로써 이미지의 일부만 효과적으로 불러올 수 있습니다. 이미지 형식의 기본 지원 기능에 따라, 이를 통해 메모리를 절약하고 이미지 로딩 속도를 높일 수 있습니다.
이미지를 읽으려면 먼저 QImageReader 객체를 생성해야 합니다. QImageReader의 생성자에 파일 이름이나 디바이스 포인터, 그리고 이미지 형식을 전달합니다. 그런 다음 setClipRect()을 호출하여 클립 영역을 설정하거나, setScaledSize()을 호출하여 크기 조정 옵션을 설정하는 등 여러 옵션을 지정할 수 있습니다. QImageReader가 이미지를 읽을 수 있는 경우(즉, 이미지 형식이 지원되고 장치가 읽기 모드로 열려 있는 경우), canRead()은 이미지를 반환합니다. 이미지를 읽으려면 read()을 호출하십시오.
이미지를 읽는 과정에서 오류가 발생하면, ` read()`는 `null` ` QImage`을 반환합니다. 이때 ` error()`를 호출하여 발생한 오류 유형을 확인하거나, ` errorString()`를 호출하여 오류에 대한 이해하기 쉬운 설명을 얻을 수 있습니다.
참고: QImageReader는 할당된 파일이나 장치에 대한 독점적인 제어권을 갖습니다. QImageReader 객체의 수명 주기 동안 할당된 파일이나 장치를 수정하려는 모든 시도는 정의되지 않은 결과를 초래합니다.
형식
QImageReader가 읽을 수 있는 형식 목록을 확인하려면 supportedImageFormats()를 호출하십시오. QImageReader는 읽기를 지원하는 모든 이미지 형식 플러그인 외에도 모든 내장 이미지 형식을 지원합니다. 지원되는 MIME 유형 목록을 얻으려면 supportedMimeTypes()를 호출하십시오. 이 목록은 예를 들어 QFileDialog::setMimeTypeFilters()에 전달할 수 있습니다.
QImageReader는 기본적으로 제공된(선택 사항인) 형식 문자열, 파일 이름 확장자 및 데이터 스트림 내용을 확인하여 이미지 형식을 자동으로 감지합니다. setAutoDetectImageFormat()를 호출하여 이 기능을 활성화하거나 비활성화할 수 있습니다.
이미지의 고해상도 버전
디바이스 픽셀과 디바이스 독립 픽셀 간의 스케일링이 적용되는 경우, 이미지의 고해상도 버전을 제공할 수 있습니다.
고해상도 버전은 기본 이름에 @2x 접미사가 붙어 표시됩니다. 읽은 이미지의 장치 픽셀 비율은 2로 설정됩니다.
환경 변수 QT_HIGHDPI_DISABLE_2X_IMAGE_LOADING 을 설정하여 이 기능을 비활성화할 수 있습니다.
QImageWriter, QImageIOHandler, QImageIOPlugin, QMimeDatabase, QColorSpace, QImage::devicePixelRatio(), QPixmap::devicePixelRatio(), QIcon, QPainter::drawPixmap(), QPainter::drawImage()도 참조하십시오 .
멤버 유형 문서
enum QImageReader::ImageReaderError
이 열거형은 QImageReader 를 사용하여 이미지를 읽을 때 발생할 수 있는 다양한 오류 유형을 설명합니다.
| 상수 | 상수명 | 설명 |
|---|---|---|
QImageReader::FileNotFoundError | 1 | QImageReader 파일 이름과 함께 `was`가 사용되었으나, 해당 이름의 파일을 찾을 수 없었습니다. 파일 이름에 확장자가 포함되지 않았고, 올바른 확장자를 가진 파일이 Qt에서 지원되지 않는 경우에도 이 오류가 발생할 수 있습니다. |
QImageReader::DeviceError | 2 | QImageReader 이미지를 읽는 동안 장치 오류가 발생했습니다. 무엇이 잘못되었는지에 대한 자세한 내용은 사용 중인 장치를 참조하십시오. |
QImageReader::UnsupportedFormatError | 3 | Qt에서 요청된 이미지 형식을 지원하지 않습니다. |
QImageReader::InvalidDataError | 4 | 이미지 데이터가 유효하지 않아 QImageReader 가 해당 데이터에서 이미지를 읽을 수 없었습니다. 이는 이미지 파일이 손상된 경우 발생할 수 있습니다. |
QImageReader::UnknownError | 0 | 알 수 없는 오류가 발생했습니다. read()를 호출한 후 이 값이 반환된다면, 이는 QImageReader 의 버그로 인한 것일 가능성이 높습니다. |
멤버 함수 문서
QImageReader::QImageReader()
빈 QImageReader 객체를 생성합니다. 이미지를 읽기 전에 setDevice() 또는 setFileName()을 호출하십시오.
[explicit] QImageReader::QImageReader(QIODevice *device, const QByteArray &format = QByteArray())
device 디바이스와 format 이미지 형식을 사용하여 QImageReader 객체를 생성합니다.
[explicit] QImageReader::QImageReader(const QString &fileName, const QByteArray &format = QByteArray())
파일 이름이 fileName 이고 이미지 형식이 format 인 QImageReader 객체를 생성합니다.
setFileName()도 참조하십시오 .
[noexcept] QImageReader::~QImageReader()
QImageReader 객체를 삭제합니다.
[static, since 6.0] int QImageReader::allocationLimit()
현재 할당 한도를 메가바이트 단위로 반환합니다.
이 함수는 Qt 6.0에서 도입되었습니다.
setAllocationLimit()도 참조하십시오 .
bool QImageReader::autoDetectImageFormat() const
이 이미지 리더에서 이미지 형식 자동 감지가 활성화되어 있으면 ` true `를 반환하고, 그렇지 않으면 ` false`를 반환합니다. 기본적으로 자동 감지가 활성화되어 있습니다.
setAutoDetectImageFormat()도 참조하십시오 .
bool QImageReader::autoTransform() const
이미지 핸들러가 read() 및 effectiveSize()에서 변환 메타데이터를 적용할 경우 true 를 반환합니다.
setAutoTransform(), transformation(), read() 및 effectiveSize()도 참조하십시오 .
QColor QImageReader::backgroundColor() const
이미지를 읽을 때 사용되는 배경색을 반환합니다. 이미지 형식이 배경색 설정을 지원하지 않는 경우, 유효하지 않은 색상이 반환됩니다.
setBackgroundColor() 및 read()도 참조하십시오 .
bool QImageReader::canRead() const
해당 기기에서 이미지를 읽을 수 있는 경우(즉, 이미지 형식이 지원되고 기기에 유효한 데이터가 포함된 것으로 보이는 경우) ` true `을 반환하고, 그렇지 않은 경우 ` false`을 반환합니다.
canRead()는 이미지 데이터가 유효한지 확인하기 위한 간단한 테스트만 수행하는 경량 함수입니다. 이미지 데이터가 손상된 경우, canRead()가 true 를 반환한 후에도 read()는 여전히 false를 반환할 수 있습니다.
참고: 잠재적으로 이미지가 아닌 파일이나 데이터를 식별하는 데 있어 QMimeDatabase 조회는 일반적으로 이 함수보다 더 나은 방법입니다.
애니메이션을 지원하는 이미지의 경우, 모든 프레임이 읽히면 canRead()는 false 를 반환합니다.
read(), supportedImageFormats(), QMimeDatabase도 참조하십시오 .
QRect QImageReader::clipRect() const
이미지의 클립 사각형(ROI, 즉 관심 영역이라고도 함)을 반환합니다. 클립 사각형이 설정되지 않은 경우, 무효한 QRect 가 반환됩니다.
setClipRect()함수도 참조하십시오 .
int QImageReader::currentImageNumber() const
애니메이션을 지원하는 이미지 형식의 경우, 이 함수는 현재 프레임의 순서 번호를 반환합니다. 이미지 형식이 애니메이션을 지원하지 않으면 0이 반환됩니다.
오류가 발생하면 이 함수는 -1을 반환합니다.
supportsAnimation(), QImageIOHandler::currentImageNumber(), canRead()도 참조하십시오 .
QRect QImageReader::currentImageRect() const
애니메이션을 지원하는 이미지 형식의 경우, 이 함수는 현재 프레임에 해당하는 rect를 반환합니다. 그렇지 않은 경우 null rect가 반환됩니다.
supportsAnimation() 및 QImageIOHandler::currentImageRect()도 참조하십시오 .
bool QImageReader::decideFormatFromContent() const
이미지 리더가 파일 확장자가 아닌 데이터 스트림의 내용만을 바탕으로 사용할 플러그인을 결정해야 하는지 여부를 반환합니다.
setDecideFormatFromContent()도 참조하십시오 .
QIODevice *QImageReader::device() const
QImageReader 에 현재 할당된 장치를 반환하며, 할당된 장치가 없는 경우에는 nullptr 를 반환합니다.
setDevice()도 참조하십시오 .
[since 6.12] QSize QImageReader::effectiveSize() const
이미지 내용을 실제로 읽지 않고, 변환을 고려한 이미지의 유효 크기를 반환합니다.
이미지 형식이 이 기능을 지원하지 않는 경우, 이 함수는 유효하지 않은 크기를 반환합니다. Qt의 내장 이미지 핸들러는 모두 이 기능을 지원하지만, 사용자 정의 이미지 형식 플러그인은 이를 지원할 의무가 없습니다.
이 함수는 Qt 6.12에서 도입되었습니다.
setAutoTransform(), size(), QImageIOHandler::ImageOption, QImageIOHandler::option(), QImageIOHandler::supportsOption()도 참조하십시오 .
QImageReader::ImageReaderError QImageReader::error() const
마지막으로 발생한 오류의 유형을 반환합니다.
ImageReaderError 및 errorString()도 참조하십시오 .
QString QImageReader::errorString() const
가장 최근에 발생한 오류에 대한 사람이 읽기 쉬운 설명을 반환합니다.
error()도 참조하십시오 .
QString QImageReader::fileName() const
현재 할당된 장치가 ` QFile` 인 경우, 또는 ` setFileName()`가 호출된 경우, 이 함수는 ` QImageReader `가 읽는 파일의 이름을 반환합니다. 그렇지 않은 경우(즉, 장치가 할당되지 않았거나 장치가 ` QFile`가 아닌 경우), 빈 ` QString `가 반환됩니다.
setFileName() 및 setDevice()도 참조하십시오 .
QByteArray QImageReader::format() const
QImageReader 가 이미지를 읽는 데 사용하는 형식을 반환합니다.
리더에 장치를 할당한 후 이 함수를 호출하여 장치의 형식을 확인할 수 있습니다. 예:
QImageReader reader("image.png");
// reader.format() == "png"리더가 장치에서 이미지를 읽을 수 없는 경우(예: 이미지가 없거나 이미지가 이미 읽힌 경우) 또는 형식이 지원되지 않는 경우, 이 함수는 빈 QByteArray()를 반환합니다.
setFormat() 및 supportedImageFormats()도 참조하십시오 .
int QImageReader::imageCount() const
애니메이션을 지원하는 이미지 형식의 경우, 이 함수는 애니메이션에 포함된 이미지의 총 개수를 반환합니다. 해당 형식이 애니메이션을 지원하지 않으면 0이 반환됩니다.
오류가 발생한 경우 이 함수는 -1을 반환합니다.
supportsAnimation(), QImageIOHandler::imageCount(), canRead()함수도 참조하십시오 .
QImage::Format QImageReader::imageFormat() const
이미지 내용을 실제로 읽지 않고 이미지의 형식을 반환합니다. 이 형식은 실제 이미지의 형식이 아니라, QImageReader::read() 함수가 반환하는 이미지 형식을 나타냅니다.
이미지 형식이 이 기능을 지원하지 않는 경우, 이 함수는 유효하지 않은 형식을 반환합니다.
QImageIOHandler::ImageOption, QImageIOHandler::option() 및 QImageIOHandler::supportsOption()도 참조하십시오 .
[static] QByteArray QImageReader::imageFormat(QIODevice *device)
이 기능이 지원되는 경우, 이 함수는 기기의 이미지 형식 device 을 반환합니다. 그렇지 않은 경우, 빈 문자열이 반환됩니다.
QImageReader::autoDetectImageFormat()도 참조하십시오 .
[static] QByteArray QImageReader::imageFormat(const QString &fileName)
이 함수는 지원되는 경우 파일 fileName 의 이미지 형식을 반환합니다. 그렇지 않은 경우 빈 문자열이 반환됩니다.
[static] QList<QByteArray> QImageReader::imageFormatsForMimeType(const QByteArray &mimeType)
mimeType 에 해당하는 이미지 형식 목록을 반환합니다.
이 함수를 호출하기 전에 QGuiApplication 인스턴스를 생성해야 한다는 점에 유의하십시오.
supportedImageFormats() 및 supportedMimeTypes()도 참조하십시오 .
bool QImageReader::jumpToImage(int imageNumber)
애니메이션을 지원하는 이미지 형식의 경우, 이 함수는 시퀀스 번호가 ` imageNumber`인 이미지로 건너뛰며, 성공하면 `true`를 반환하고 해당 이미지를 찾을 수 없으면 `false`를 반환합니다.
다음에 read()를 호출하면 이 이미지를 읽으려고 시도합니다.
jumpToNextImage() 및 QImageIOHandler::jumpToImage()도 참조하십시오 .
bool QImageReader::jumpToNextImage()
애니메이션을 지원하는 이미지 형식의 경우, 이 함수는 현재 이미지를 한 단계씩 넘기며, 성공하면 true를, 애니메이션에 다음 이미지가 없으면 false를 반환합니다.
기본 구현은 read()를 호출한 후 결과 이미지를 버리지만, 이미지 핸들러는 이 작업을 더 효율적으로 구현할 수 있는 방법을 가질 수 있습니다.
jumpToImage() 및 QImageIOHandler::jumpToNextImage()도 참조하십시오 .
int QImageReader::loopCount() const
애니메이션을 지원하는 이미지 형식의 경우, 이 함수는 애니메이션이 반복될 횟수를 반환합니다. 이 함수가 -1을 반환하면, 애니메이션이 무한히 반복되어야 함을 의미하거나 오류가 발생했음을 의미할 수 있습니다. 오류가 발생한 경우, canRead()는 false를 반환합니다.
supportsAnimation(), QImageIOHandler::loopCount(), canRead()도 참조하십시오 .
int QImageReader::nextImageDelay() const
애니메이션을 지원하는 이미지 형식의 경우, 이 함수는 애니메이션의 다음 프레임을 표시하기까지 기다려야 할 시간을 밀리초 단위로 반환합니다. 이미지 형식이 애니메이션을 지원하지 않으면 0이 반환됩니다.
오류가 발생하면 이 함수는 -1을 반환합니다.
supportsAnimation(), QImageIOHandler::nextImageDelay(), canRead()도 참조하십시오 .
int QImageReader::quality() const
이미지 형식의 품질 설정을 반환합니다.
setQuality()도 참조하십시오 .
QImage QImageReader::read()
장치에서 이미지를 읽습니다. 성공하면 읽은 이미지가 반환되고, 그렇지 않으면 null QImage 가 반환됩니다. 이후 error()를 호출하여 발생한 오류의 유형을 확인하거나, errorString()를 호출하여 오류에 대한 이해하기 쉬운 설명을 얻을 수 있습니다.
애니메이션을 지원하는 이미지 형식의 경우, read()를 반복해서 호출하면 다음 프레임이 반환됩니다. 모든 프레임이 읽히면 null 이미지가 반환됩니다.
canRead(), supportedImageFormats(), supportsAnimation() 및 QMovie도 참조하십시오 .
bool QImageReader::read(QImage *image)
장치에서 이미지를 읽어와 ` image`에 저장합니다. ` `는 ` QImage`를 가리켜야 합니다. 성공 시 ` true `를 반환하고, 그렇지 않은 경우 ` false`를 반환합니다.
image 가 읽으려는 이미지 데이터와 동일한 형식과 크기를 갖는 경우, 이 함수는 읽기 전에 새로운 이미지를 할당할 필요가 없을 수 있습니다. 이 때문에 항상 새로운 이미지를 생성하는 다른 read() 오버로드보다 더 빠를 수 있으며, 특히 동일한 형식과 크기를 가진 여러 이미지를 읽을 때 더욱 그렇습니다.
QImage icon(64, 64, QImage::Format_RGB32);
QImageReader reader("icon_64x64.bmp");
if (reader.read(&icon)) {
// Display icon
}애니메이션을 지원하는 이미지 형식의 경우, read()를 반복해서 호출하면 다음 프레임이 반환됩니다. 모든 프레임이 읽히면 null 이미지가 반환됩니다.
이 함수는 오버로드된 함수입니다.
canRead(), supportedImageFormats(), supportsAnimation(), QMovie도 참조하십시오 .
QRect QImageReader::scaledClipRect() const
이미지의 스케일링된 클립 영역을 반환합니다.
setScaledClipRect()도 참조하십시오 .
QSize QImageReader::scaledSize() const
이미지의 스케일링된 크기를 반환합니다.
setScaledSize()도 참조하십시오 .
[static, since 6.0] void QImageReader::setAllocationLimit(int mbLimit)
할당 한도를 mbLimit 메가바이트로 설정합니다. 이 한도를 초과하는 QImage 메모리 할당이 필요한 이미지는 거부됩니다. mbLimit 가 0인 경우, 할당 크기 검사가 비활성화됩니다.
이 제한은 애플리케이션이 손상된 이미지 파일을 불러올 때 예기치 않게 많은 메모리를 사용하는 것을 방지하는 데 도움이 됩니다. 일반적으로 이 값을 변경할 필요는 없습니다. 기본 제한은 일반적으로 사용되는 모든 이미지 크기에 충분히 넉넉합니다.
실행 시 이 값은 환경 변수 ` QT_IMAGEIO_MAXALLOC`에 의해 재정의될 수 있습니다.
참고: Qt는 일반적으로 Qt GUI에서 이미지를 사용할 때 해당 깊이(32비트/픽셀)로 변환하므로, 메모리요구량은 픽셀당 최소 32비트를 기준으로 계산됩니다. 즉, 1 bpp 및 8 bpp 이미지를 읽을 때 실제 할당 제한은 mbLimit 보다 훨씬 작습니다.
이 함수는 Qt 6.0에서 도입되었습니다.
allocationLimit()도 참조하십시오 .
void QImageReader::setAutoDetectImageFormat(bool enabled)
enabled 가 true인 경우 이미지 형식 자동 감지가 활성화되며, 그렇지 않으면 비활성화됩니다. 기본적으로 자동 감지는 활성화되어 있습니다.
QImageReader QImageReader 는 이미지 형식을 감지하기 위해 포괄적인 방식을 사용합니다. 우선, 에 파일 이름을 전달하면, 주어진 파일 이름이 기존 파일을 가리키지 않는 경우 지원되는 기본 확장자를 하나씩 차례로 파일 이름 뒤에 추가하여 파일 확장자를 감지하려고 시도합니다. 그런 다음 다음 방식을 사용하여 이미지 형식을 감지합니다:
- 먼저, 선택적 형식 문자열이나 파일 이름 접미사(소스 장치가 파일인 경우)를 기반으로 이미지 플러그인을 조회합니다. 이 단계에서는 콘텐츠 감지가 수행되지 않습니다. ` QImageReader `는 해당 형식의 읽기를 지원하는 첫 번째 플러그인을 선택합니다.
- 해당 이미지 형식을 지원하는 플러그인이 없는 경우, 선택적 형식 문자열이나 파일 이름 확장자를 기준으로 Qt의 내장 핸들러가 확인됩니다.
- 해당 형식을 지원하는 플러그인이나 내장 핸들러가 발견되지 않으면, 데이터 스트림의 내용을 검사하여 각 플러그인을 테스트합니다.
- 데이터 내용을 바탕으로 이미지 형식을 감지할 수 있는 플러그인이 없는 경우, 각 내장 이미지 핸들러를 검사하여 테스트합니다.
- 마지막으로, 위의 모든 방법이 실패하면 QImageReader 는 이미지 읽기 시도 시 실패를 보고합니다.
이미지 형식 자동 감지를 비활성화하면, QImageReader 는 형식 문자열을 기반으로만 플러그인과 내장 핸들러를 조회합니다(즉, 파일 이름 확장자는 테스트되지 않음).
autoDetectImageFormat(), QImageIOHandler::canRead(), QImageIOPlugin::capabilities()도 참조하십시오 .
void QImageReader::setAutoTransform(bool enabled)
read()가 반환하는 이미지와 effectiveSize()가 반환하는 크기 정보에 대해, enabled 가 true 인 경우 변환 메타데이터가 자동으로 적용되도록 설정합니다.
autoTransform(), transformation(), read() 및 effectiveSize()도 참조하십시오 .
void QImageReader::setBackgroundColor(const QColor &color)
배경색을 color 로 설정합니다. 이 작업을 지원하는 이미지 형식은 이미지를 읽기 전에 배경을 color 로 초기화해야 합니다.
backgroundColor() 및 read()도 참조하십시오 .
void QImageReader::setClipRect(const QRect &rect)
이미지 클립 영역(ROI, 즉 관심 영역)을 rect 로 설정합니다. rect 의 좌표는 size() 함수가 반환하는 변환되지 않은 이미지 크기를 기준으로 합니다.
clipRect(), setScaledSize() 및 setScaledClipRect()도 참조하십시오 .
void QImageReader::setDecideFormatFromContent(bool ignored)
ignored 가 true로 설정되어 있으면, 이미지 리더는 지정된 형식이나 파일 확장자를 무시하고 데이터 스트림의 내용만을 바탕으로 사용할 플러그인을 결정합니다.
이 플래그를 설정하면 모든 이미지 플러그인이 로드됩니다. 각 플러그인은 이미지 데이터의 첫 번째 바이트를 읽어 해당 플러그인이 호환되는지 여부를 판단합니다.
또한 이 설정은 이미지 형식의 자동 감지 기능을 비활성화합니다.
decideFormatFromContent()도 참조하십시오 .
void QImageReader::setDevice(QIODevice *device)
QImageReader 의 장치를 device 로 설정합니다. 장치가 이미 설정되어 있는 경우, 기존 장치는 QImageReader 에서 제거되며 그 외에는 변경되지 않습니다.
장치가 아직 열려 있지 않은 경우, ` QImageReader `은 `open()`을 호출하여 ` ReadOnly ` 모드로 장치를 열려고 시도합니다. 단, ` QProcess`, ` QTcpSocket `, ` QUdpSocket`과 같이 장치를 열기 위해 추가적인 처리가 필요한 특정 장치의 경우 이 방법이 작동하지 않는다는 점에 유의하십시오.
device() 및 setFileName()도 참조하십시오 .
void QImageReader::setFileName(const QString &fileName)
QImageReader 의 파일 이름을 fileName 로 설정합니다. 내부적으로 QImageReader 는 QFile 객체를 생성하여 ReadOnly 모드로 열고, 이미지를 읽을 때 이를 사용합니다.
fileName 에 파일 확장자(예: .png 또는 .bmp)가 포함되지 않은 경우, QImageReader 는 일치하는 파일을 찾을 때까지 지원되는 모든 확장자를 순차적으로 확인합니다.
fileName(), setDevice() 및 supportedImageFormats()도 참조하십시오 .
void QImageReader::setFormat(const QByteArray &format)
QImageReader 가 이미지를 읽을 때 사용할 형식을 format 로 설정합니다. format 는 대소문자를 구분하지 않는 텍스트 문자열입니다. 예시:
QImageReader reader;
reader.setFormat("png"); // same as reader.setFormat("PNG");` supportedImageFormats()`를 호출하면 ` QImageReader `가 지원하는 전체 형식 목록을 확인할 수 있습니다.
format()도 참조하십시오 .
void QImageReader::setQuality(int quality)
이미지 형식의 품질 설정을 ‘ quality ’로 설정합니다.
일부 이미지 형식, 특히 손실 압축 방식의 경우, a) 결과 이미지의 화질과 b) 디코딩 실행 시간 사이에서 절충점을 요구합니다. 이 함수는 이를 지원하는 이미지 형식에 대해 해당 절충점의 수준을 설정합니다.
이미지 크기를 조정하여 읽을 경우, 품질 설정은 시각적 품질과 크기 조정 알고리즘의 실행 속도 간의 절충 수준에도 영향을 미칠 수 있습니다.
quality 의 값 범위는 이미지 형식에 따라 다릅니다. 예를 들어, "jpeg" 형식은 0(낮은 시각적 품질)부터 100(높은 시각적 품질)까지의 품질 범위를 지원합니다.
quality() 및 setScaledSize()도 참조하십시오 .
void QImageReader::setScaledClipRect(const QRect &rect)
확대/축소된 클립 영역을 rect 로 설정합니다. 확대/축소된 클립 영역은 이미지가 확대/축소된 후에 적용되는 클립 영역(ROI, 즉 관심 영역이라고도 함)입니다.
scaledClipRect() 및 setScaledSize()도 참조하십시오 .
void QImageReader::setScaledSize(const QSize &size)
이미지의 확대/축소된 크기를 size 로 설정합니다. 확대/축소 작업은 초기 클립 영역 처리 후, 확대/축소된 클립 영역이 적용되기 전에 수행됩니다. 확대/축소에 사용되는 알고리즘은 이미지 형식에 따라 다릅니다. 기본적으로(즉, 이미지 형식이 확대/축소를 지원하지 않는 경우), ` QImageReader `는 Qt::SmoothScaling을 사용하여 `QImage::scale()`을 호출합니다.
size 에 한쪽 치수만 설정된 경우, 종횡비를 유지하기 위해 다른 한쪽 치수는 이미지의 natural size 를 기준으로 계산됩니다.
scaledSize(), setClipRect(), setScaledClipRect()도 참조하십시오 .
QSize QImageReader::size() const
이미지 내용을 실제로 읽지 않고 이미지의 크기를 반환합니다.
이미지 형식이 이 기능을 지원하지 않는 경우, 이 함수는 유효하지 않은 크기를 반환합니다. Qt의 내장 이미지 핸들러는 모두 이 기능을 지원하지만, 사용자 정의 이미지 형식 플러그인은 이를 지원할 의무가 없습니다.
effectiveSize(), QImageIOHandler::ImageOption, QImageIOHandler::option(), QImageIOHandler::supportsOption()도 참조하십시오 .
QByteArray QImageReader::subType() const
이미지의 하위 유형을 반환합니다.
[static] QList<QByteArray> QImageReader::supportedImageFormats()
QImageReader 에서 지원하는 이미지 형식 목록을 반환합니다.
기본적으로 Qt는 다음 형식을 읽을 수 있습니다:
| 형식 | MIME 유형 | 설명 |
|---|---|---|
| BMP | image/bmp | Windows 비트맵 |
| GIF | image/gif | 그래픽 교환 형식 (선택 사항) |
| JPG | image/jpeg | Joint Photographic Experts Group |
| PNG | image/png | 휴대용 네트워크 그래픽 |
| PBM | image/x-portable-bitmap | 이식형 비트맵 |
| PGM | image/x-portable-graymap | 이식형 그레이맵 |
| PPM | image/x-portable-pixmap | 이식형 픽스맵 |
| XBM | image/x-xbitmap | X11 비트맵 |
| XPM | image/x-xpixmap | X11 픽스맵 |
| SVG | image/svg+xml | 확장 가능한 벡터 그래픽 |
SVG 파일의 읽기 및 쓰기는 Qt SVG 모듈을 통해 지원됩니다. Qt Image Formats 모듈은 추가적인 이미지 형식을 지원합니다.
이 함수를 호출하기 전에 QCoreApplication 인스턴스를 생성해야 합니다.
setFormat(), QImageWriter::supportedImageFormats(), QImageIOPlugin도 참조하십시오 .
[static] QList<QByteArray> QImageReader::supportedMimeTypes()
QImageReader 에서 지원하는 MIME 유형 목록을 반환합니다.
이 함수를 호출하기 전에 QApplication 인스턴스를 생성해야 합니다.
supportedImageFormats() 및 QImageWriter::supportedMimeTypes()도 참조하십시오 .
QList<QByteArray> QImageReader::supportedSubTypes() const
이미지에서 지원하는 하위 유형의 목록을 반환합니다.
bool QImageReader::supportsAnimation() const
이미지 형식이 애니메이션을 지원하는 경우 ` true `를 반환하고, 그렇지 않은 경우 `false`를 반환합니다.
QMovie::supportedFormats()도 참조하십시오 .
bool QImageReader::supportsOption(QImageIOHandler::ImageOption option) const
리더가 ` option`을 지원하는 경우 ` true `을 반환하고, 그렇지 않은 경우 `false`를 반환합니다.
이미지 형식마다 지원하는 옵션이 다릅니다. 현재 형식이 특정 옵션을 지원하는지 확인하려면 이 함수를 호출하십시오. 예를 들어, PNG 형식은 이미지의 메타데이터에 텍스트를 삽입할 수 있게 해 주며( text() 참조), BMP 형식은 이미지 전체를 메모리에 불러오지 않고도 이미지의 크기를 확인할 수 있게 해 줍니다( size() 참조).
QImageReader reader(":/image.png");
if (reader.supportsOption(QImageIOHandler::Size))
qDebug() << "Size:" << reader.size();QImageWriter::supportsOption()도 참조하십시오 .
QString QImageReader::text(const QString &key) const
key 에 연결된 이미지 텍스트를 반환합니다.
이 옵션에 대한 지원은 QImageIOHandler::Description 를 통해 구현됩니다.
textKeys() 및 QImageWriter::setText()도 참조하십시오 .
QStringList QImageReader::textKeys() const
이 이미지의 텍스트 키를 반환합니다. 이 키들을 text()와 함께 사용하여 특정 키에 해당하는 이미지 텍스트를 나열할 수 있습니다.
이 옵션에 대한 지원은 QImageIOHandler::Description 을 통해 구현됩니다.
text(), QImageWriter::setText(), QImage::textKeys()도 참조하십시오 .
QImageIOHandler::Transformations QImageReader::transformation() const
이미지의 방향 정보를 포함한 변환 메타데이터를 반환합니다. 해당 형식이 변환 메타데이터를 지원하지 않는 경우, QImageIOHandler::TransformationNone 가 반환됩니다.
setAutoTransform() 및 autoTransform()도 참조하십시오 .
© 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.