QImageReader Class
QImageReader 클래스는 파일이나 다른 장치에서 이미지를 읽기 위한 형식 독립적인 인터페이스를 제공합니다. 더 보기...
Header: | #include <QImageReader> |
CMake: | find_package(Qt6 REQUIRED COMPONENTS Gui) target_link_libraries(mytarget PRIVATE Qt6::Gui) |
qmake: | QT += gui |
- 상속된 멤버를 포함한 모든 멤버 목록
- QImageReader는 페인팅 클래스의 일부입니다.
참고: 이 클래스의 모든 함수는 재진입합니다.
공용 유형
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 |
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() 호출로 크기 조정과 같은 여러 옵션을 설정할 수 있습니다. canRead()는 QImageReader가 이미지를 읽을 수 있는 경우(즉, 이미지 형식이 지원되고 장치가 읽기 위해 열려 있는 경우) 이미지를 반환합니다. 이미지를 읽으려면 read()를 호출합니다.
이미지를 읽을 때 오류가 발생하면 read()는 null QImage 을 반환합니다. 그런 다음 error()를 호출하여 발생한 오류의 유형을 찾거나 errorString()를 호출하여 사람이 읽을 수 있는 오류 설명을 얻을 수 있습니다.
참고: QImageReader는 할당된 파일 또는 장치에 대한 독점적인 제어권을 가정합니다. QImageReader 객체의 수명 동안 할당된 파일 또는 장치를 수정하려고 시도하면 정의되지 않은 결과가 생성됩니다.
포맷
supportedImageFormats()를 호출하여 QImageReader가 읽을 수 있는 형식 목록을 확인합니다. QImageReader는 읽기를 지원하는 모든 이미지 형식 플러그인뿐만 아니라 모든 내장 이미지 형식을 지원합니다. supportedMimeTypes ()를 호출하여 지원되는 MIME 유형 목록을 가져와 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 를 사용하여 이미지를 읽을 때 발생할 수 있는 다양한 유형의 오류를 설명합니다.
Constant | 값 | Description |
---|---|---|
QImageReader::FileNotFoundError | 1 | QImageReader 가 파일 이름으로 사용되었지만 해당 이름의 파일을 찾을 수 없습니다. 파일 이름에 확장자가 포함되어 있지 않고 올바른 확장자를 가진 파일이 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()에 변환 메타데이터를 적용하는 경우 true
를 반환합니다.
setAutoTransform(), transformation() 및 read()도 참조하세요 .
QColor QImageReader::backgroundColor() const
이미지를 읽을 때 사용되는 배경색을 반환합니다. 이미지 형식이 배경색 설정을 지원하지 않는 경우 잘못된 색상이 반환됩니다.
setBackgroundColor() 및 read()도 참조하세요 .
bool QImageReader::canRead() const
디바이스에서 이미지를 읽을 수 있는 경우(즉, 이미지 형식이 지원되고 디바이스에 유효한 데이터가 포함된 것으로 보이는 경우) true
을 반환하고, 그렇지 않으면 false
을 반환합니다.
canRead()는 이미지 데이터가 유효한지 확인하기 위한 빠른 테스트만 수행하는 경량 함수입니다. read(이미지 데이터가 손상된 경우 canRead()가 true
를 반환한 후에도 여전히 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
애니메이션을 지원하는 이미지 형식의 경우 이 함수는 현재 프레임의 직사각형을 반환합니다. 그렇지 않으면 null rect가 반환됩니다.
supportsAnimation() 및 QImageIOHandler::currentImageRect()도 참조하세요 .
bool QImageReader::decideFormatFromContent() const
이미지 리더가 파일 확장자가 아닌 데이터 스트림의 내용만을 기준으로 사용할 플러그인을 결정할지 여부를 반환합니다.
setDecideFormatFromContent()도 참조하세요 .
QIODevice *QImageReader::device() const
현재 QImageReader 에 할당된 디바이스를 반환하거나 디바이스가 할당되지 않은 경우 nullptr
을 반환합니다.
setDevice()도 참조하세요 .
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 인 이미지로 건너뛰고, 성공하면 참을 반환하고 해당 이미지를 찾을 수 없으면 거짓을 반환합니다.
다음에 read()를 호출하면 이 이미지를 읽으려고 시도합니다.
jumpToNextImage() 및 QImageIOHandler::jumpToImage()도 참조하세요 .
bool QImageReader::jumpToNextImage()
애니메이션을 지원하는 이미지 형식의 경우 이 함수는 현재 이미지를 단계적으로 검사하여 성공하면 참을 반환하고 애니메이션에 다음 이미지가 없으면 거짓을 반환합니다.
기본 구현은 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)
이 함수는 오버로드된 함수입니다.
장치에서 QImage 을 가리켜야 하는 image 으로 이미지를 읽습니다. 성공하면 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
에 의해 재정의될 수 있습니다.
참고: 메모리 요구 사항은 픽셀당 최소 32비트로 계산되는데, 이는 Qt GUI에서 이미지를 사용할 때 일반적으로 이미지를 해당 깊이로 변환하기 때문입니다. 즉, 1bpp 및 8bpp 이미지를 읽을 때 유효 할당 제한은 mbLimit 보다 훨씬 작습니다.
이 함수는 Qt 6.0에 도입되었습니다.
allocationLimit()도 참조하세요 .
void QImageReader::setAutoDetectImageFormat(bool enabled)
enabled 이 참이면 이미지 형식 자동 감지가 활성화되고, 그렇지 않으면 비활성화됩니다. 기본적으로 자동 감지는 활성화되어 있습니다.
QImageReader 는 이미지 형식을 감지하기 위해 광범위한 접근 방식을 사용합니다. 먼저 QImageReader 에 파일 이름을 전달하면 지정된 파일 이름이 기존 파일을 가리키지 않는 경우 지원되는 기본 확장자를 지정된 파일 이름에 한 번에 하나씩 추가하여 파일 확장자를 감지하려고 시도합니다. 그런 다음 다음과 같은 접근 방식을 사용하여 이미지 형식을 감지합니다:
- 선택적 형식 문자열 또는 파일 이름 접미사(소스 디바이스가 파일인 경우)를 기준으로 이미지 플러그인을 먼저 쿼리합니다. 이 단계에서는 콘텐츠 감지가 수행되지 않습니다. QImageReader 이 형식에 대한 읽기를 지원하는 첫 번째 플러그인을 선택합니다.
- 이미지 형식을 지원하는 플러그인이 없는 경우, 선택적 형식 문자열 또는 파일 이름 접미사를 기준으로 Qt의 내장 핸들러가 검사됩니다.
- 지원되는 플러그인이나 내장 처리기를 찾을 수 없으면 데이터 스트림의 내용을 검사하여 각 플러그인을 테스트합니다.
- 데이터 내용을 기반으로 이미지 형식을 감지할 수 있는 플러그인이 없는 경우, 내장된 각 이미지 처리기가 내용을 검사하여 테스트됩니다.
- 마지막으로 위의 모든 접근 방식이 실패하면 QImageReader 에서 이미지 읽기를 시도할 때 실패를 보고합니다.
이미지 형식 자동 감지를 비활성화하면 QImageReader 은 형식 문자열을 기준으로 플러그인과 내장 처리기만 쿼리합니다(즉, 파일 이름 확장자는 테스트하지 않음).
autoDetectImageFormat(), QImageIOHandler::canRead() 및 QImageIOPlugin::capabilities()도 참조하세요 .
void QImageReader::setAutoTransform(bool enabled)
enabled 이 true
인 경우 read()에서 반환된 이미지에 변환 메타데이터가 자동으로 적용되도록 결정합니다.
autoTransform(), transformation() 및 read()도 참조하세요 .
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 은 QImage::scale()과 Qt::SmoothScaling을 사용합니다.
size 에 하나의 치수만 설정되어 있는 경우 다른 치수는 이미지의 natural size 에서 계산되어 가로 세로 비율을 유지합니다.
scaledSize(), setClipRect(), setScaledClipRect()도 참조하세요 .
QSize QImageReader::size() const
이미지 내용을 실제로 읽지 않고 이미지의 크기를 반환합니다.
이미지 형식이 이 기능을 지원하지 않는 경우 이 함수는 잘못된 크기를 반환합니다. Qt의 내장 이미지 핸들러는 모두 이 기능을 지원하지만, 사용자 정의 이미지 포맷 플러그인이 필요하지 않습니다.
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 | 공동 사진 전문가 그룹 |
PNG | image/png | 휴대용 네트워크 그래픽 |
PBM | 이미지/x-포터블 비트맵 | 휴대용 비트맵 |
PGM | 이미지/x-포터블-그레이맵 | 휴대용 그레이맵 |
PPM | image/x-portable-pixmap | 휴대용 픽스맵 |
XBM | image/x-x-bitmap | 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()도 참조하세요 .
© 2025 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.