QImage Class
QImage 클래스는 픽셀 데이터에 직접 접근할 수 있도록 해주는 하드웨어 독립적인 이미지 표현 방식을 제공하며, 그리기 장치로 사용할 수 있습니다. 더 보기...
| 헤더: | #include <QImage> |
| CMake: | find_package(Qt6 REQUIRED COMPONENTS Gui) target_link_libraries(mytarget PRIVATE Qt6::Gui) |
| qmake: | QT += gui |
| 상속: | QPaintDevice |
- 상속된 멤버를 포함한 모든 멤버 목록
- QImage는 ‘페인팅 클래스 ’ 및 ‘암시적 공유 클래스’에 속합니다.
참고: 이 클래스의 모든 함수는 재진입 가능합니다.
공개 유형
| enum | Format { Format_Invalid, Format_Mono, Format_MonoLSB, Format_Indexed8, Format_RGB32, …, Format_CMYK8888 } |
| enum | InvertMode { InvertRgb, InvertRgba } |
공개 함수
| QImage() | |
| QImage(const char *const[] xpm) | |
| QImage(const QSize &size, QImage::Format format) | |
| QImage(const QString &fileName, const char *format = nullptr) | |
| QImage(int width, int height, QImage::Format format) | |
| QImage(const uchar *data, int width, int height, QImage::Format format, QImageCleanupFunction cleanupFunction = nullptr, void *cleanupInfo = nullptr) | |
| QImage(uchar *data, int width, int height, QImage::Format format, QImageCleanupFunction cleanupFunction = nullptr, void *cleanupInfo = nullptr) | |
| QImage(const uchar *data, int width, int height, qsizetype bytesPerLine, QImage::Format format, QImageCleanupFunction cleanupFunction = nullptr, void *cleanupInfo = nullptr) | |
| QImage(uchar *data, int width, int height, qsizetype bytesPerLine, QImage::Format format, QImageCleanupFunction cleanupFunction = nullptr, void *cleanupInfo = nullptr) | |
| QImage(const QImage &image) | |
| QImage(QImage &&other) | |
| virtual | ~QImage() |
| bool | allGray() const |
| void | applyColorTransform(const QColorTransform &transform) |
(since 6.8) void | applyColorTransform(const QColorTransform &transform, QImage::Format toFormat, Qt::ImageConversionFlags flags = Qt::AutoColor) |
| int | bitPlaneCount() const |
| uchar * | bits() |
| const uchar * | bits() const |
| qsizetype | bytesPerLine() const |
| qint64 | cacheKey() const |
| QRgb | color(int i) const |
| int | colorCount() const |
| QColorSpace | colorSpace() const |
| QList<QRgb> | colorTable() const |
(since 6.4) QImage | colorTransformed(const QColorTransform &transform) const & |
(since 6.8) QImage | colorTransformed(const QColorTransform &transform, QImage::Format toFormat, Qt::ImageConversionFlags flags = Qt::AutoColor) const & |
(since 6.4) QImage | colorTransformed(const QColorTransform &transform) && |
(since 6.8) QImage | colorTransformed(const QColorTransform &transform, QImage::Format format, Qt::ImageConversionFlags flags = Qt::AutoColor) && |
| const uchar * | constBits() const |
| const uchar * | constScanLine(int i) const |
| void | convertTo(QImage::Format format, Qt::ImageConversionFlags flags = Qt::AutoColor) |
| void | convertToColorSpace(const QColorSpace &colorSpace) |
(since 6.8) void | convertToColorSpace(const QColorSpace &colorSpace, QImage::Format format, Qt::ImageConversionFlags flags = Qt::AutoColor) |
| QImage | convertToFormat(QImage::Format format, Qt::ImageConversionFlags flags = Qt::AutoColor) && |
| QImage | convertToFormat(QImage::Format format, Qt::ImageConversionFlags flags = Qt::AutoColor) const & |
| QImage | convertToFormat(QImage::Format format, const QList<QRgb> &colorTable, Qt::ImageConversionFlags flags = Qt::AutoColor) const |
(since 6.0) QImage | convertedTo(QImage::Format format, Qt::ImageConversionFlags flags = Qt::AutoColor) && |
(since 6.0) QImage | convertedTo(QImage::Format format, Qt::ImageConversionFlags flags = Qt::AutoColor) const & |
| QImage | convertedToColorSpace(const QColorSpace &colorSpace) const |
(since 6.8) QImage | convertedToColorSpace(const QColorSpace &colorSpace, QImage::Format format, Qt::ImageConversionFlags flags = Qt::AutoColor) && |
(since 6.8) QImage | convertedToColorSpace(const QColorSpace &colorSpace, QImage::Format format, Qt::ImageConversionFlags flags = Qt::AutoColor) const & |
| QImage | copy(const QRect &rectangle = QRect()) const |
| QImage | copy(int x, int y, int width, int height) const |
| QImage | createAlphaMask(Qt::ImageConversionFlags flags = Qt::AutoColor) const |
| QImage | createHeuristicMask(bool clipTight = true) const |
| QImage | createMaskFromColor(QRgb color, Qt::MaskMode mode = Qt::MaskInColor) const |
| int | depth() const |
(since 6.2) QSizeF | deviceIndependentSize() const |
| qreal | devicePixelRatio() const |
| int | dotsPerMeterX() const |
| int | dotsPerMeterY() const |
| void | fill(uint pixelValue) |
| void | fill(Qt::GlobalColor color) |
| void | fill(const QColor &color) |
(since 6.9) void | flip(Qt::Orientations orient = Qt::Vertical) |
(since 6.9) QImage | flipped(Qt::Orientations orient = Qt::Vertical) && |
(since 6.9) QImage | flipped(Qt::Orientations orient = Qt::Vertical) const & |
| QImage::Format | format() const |
| bool | hasAlphaChannel() const |
| int | height() const |
| void | invertPixels(QImage::InvertMode mode = InvertRgb) |
| bool | isGrayscale() const |
| bool | isNull() const |
| bool | load(const QString &fileName, const char *format = nullptr) |
| bool | load(QIODevice *device, const char *format) |
(since 6.2) bool | loadFromData(QByteArrayView data, const char *format = nullptr) |
| bool | loadFromData(const QByteArray &data, const char *format = nullptr) |
| bool | loadFromData(const uchar *data, int len, const char *format = nullptr) |
(since 6.0, until 6.13) void | mirror(bool horizontal = false, bool vertical = true) |
(until 6.13) QImage | mirrored(bool horizontal = false, bool vertical = true) && |
(until 6.13) QImage | mirrored(bool horizontal = false, bool vertical = true) const & |
| QPoint | offset() const |
| QRgb | pixel(const QPoint &position) const |
| QRgb | pixel(int x, int y) const |
| QColor | pixelColor(const QPoint &position) const |
| QColor | pixelColor(int x, int y) const |
| QPixelFormat | pixelFormat() const |
| int | pixelIndex(const QPoint &position) const |
| int | pixelIndex(int x, int y) const |
| QRect | rect() const |
| bool | reinterpretAsFormat(QImage::Format format) |
(since 6.0) void | rgbSwap() |
| QImage | rgbSwapped() && |
| QImage | rgbSwapped() const & |
| bool | save(const QString &fileName, const char *format = nullptr, int quality = -1) const |
| bool | save(QIODevice *device, const char *format = nullptr, int quality = -1) const |
| QImage | scaled(const QSize &size, Qt::AspectRatioMode aspectRatioMode = Qt::IgnoreAspectRatio, Qt::TransformationMode transformMode = Qt::FastTransformation) const |
| QImage | scaled(int width, int height, Qt::AspectRatioMode aspectRatioMode = Qt::IgnoreAspectRatio, Qt::TransformationMode transformMode = Qt::FastTransformation) const |
| QImage | scaledToHeight(int height, Qt::TransformationMode mode = Qt::FastTransformation) const |
| QImage | scaledToWidth(int width, Qt::TransformationMode mode = Qt::FastTransformation) const |
| uchar * | scanLine(int i) |
| const uchar * | scanLine(int i) const |
| void | setAlphaChannel(const QImage &alphaChannel) |
| void | setColor(int index, QRgb colorValue) |
| void | setColorCount(int colorCount) |
| void | setColorSpace(const QColorSpace &colorSpace) |
| void | setColorTable(const QList<QRgb> &colors) |
| void | setDevicePixelRatio(qreal scaleFactor) |
| void | setDotsPerMeterX(int x) |
| void | setDotsPerMeterY(int y) |
| void | setOffset(const QPoint &offset) |
| void | setPixel(const QPoint &position, uint index_or_rgb) |
| void | setPixel(int x, int y, uint index_or_rgb) |
| void | setPixelColor(const QPoint &position, const QColor &color) |
| void | setPixelColor(int x, int y, const QColor &color) |
| void | setText(const QString &key, const QString &text) |
| QSize | size() const |
| qsizetype | sizeInBytes() const |
| void | swap(QImage &other) |
| QString | text(const QString &key = QString()) const |
| QStringList | textKeys() const |
| CGImageRef | toCGImage() const |
(since 6.0) HBITMAP | toHBITMAP() const |
(since 6.0) HICON | toHICON(const QImage &mask = {}) const |
| QImage | transformed(const QTransform &matrix, Qt::TransformationMode mode = Qt::FastTransformation) const |
| bool | valid(const QPoint &pos) const |
| bool | valid(int x, int y) const |
| int | width() const |
| operator QVariant() const | |
| bool | operator!=(const QImage &image) const |
| QImage & | operator=(QImage &&other) |
| QImage & | operator=(const QImage &image) |
| bool | operator==(const QImage &image) const |
정적 공용 멤버
(since 6.2) QImage | fromData(QByteArrayView data, const char*format = nullptr) |
| QImage(QByteArrayView data, const char *format = nullptr) | fromData(const QByteArray&data, const char*format = nullptr) |
| QImage | fromData(const uchar*data, int size, const char*format = nullptr) |
(since 6.0) QImage | fromHBITMAP(HBITMAP hbitmap) |
(since 6.0) QImage | fromHICON(HICON icon) |
| QImage::Format | toImageFormat(QPixelFormat format) |
| QPixelFormat | toPixelFormat(QImage::Format format) |
| QTransform | trueMatrix(const QTransform&matrix, int width, int height) |
관련 비회원 함수
| QImageCleanupFunction | |
| QDataStream & | operator<<(QDataStream &stream, const QImage &image) |
| QDataStream & | operator>>(QDataStream &stream, QImage &image) |
상세 설명
Qt는 이미지 데이터를 처리하기 위해 QImage, QPixmap, QBitmap 및 QPicture 등 네 가지 클래스를 제공합니다. QImage는 I/O 및 직접 픽셀 액세스 및 조작을 위해 설계되고 최적화된 반면, QPixmap 는 화면에 이미지를 표시하기 위해 설계되고 최적화되었습니다. QBitmap 는 QPixmap 를 상속받아 깊이를 1로 보장하는 편의 클래스에 불과합니다. 마지막으로, QPicture 클래스는 QPainter 명령을 기록하고 재실행하는 페인트 장치입니다.
QImage는 QPaintDevice 의 하위 클래스이므로, QPainter 를 사용하여 이미지에 직접 그릴 수 있습니다. QImage에서 QPainter 를 사용할 경우, 현재 GUI 스레드와 다른 스레드에서 페인팅 작업을 수행할 수 있습니다.
QImage 클래스는 Format 열거형에 정의된 여러 이미지 형식을 지원합니다. 여기에는 Qt 4.x의 모든 버전에서 사용할 수 있는 단색, 8비트, 32비트 및 알파 블렌딩 이미지가 포함됩니다.
QImage는 이미지에 대한 다양한 정보를 얻기 위해 사용할 수 있는 일련의 함수들을 제공합니다. 또한 이미지를 변환할 수 있는 여러 함수도 있습니다.
QImage 클래스는 암시적 데이터 공유를 사용하므로 QImage 객체는 값으로 전달할 수 있습니다. 또한 QImage 객체는 스트리밍 및 비교가 가능합니다.
참고: Qt의 정적 빌드에서 QImage 객체를로드하려면 Plugin HowTo를 참조하십시오.
경고: QImage::Format_Indexed8 또는 QImage::Format_CMYK8888 형식의 QImage에그리기 작업은 지원되지 않습니다.
이미지 파일 읽기 및 쓰기
QImage는 이미지 파일을 불러오는 여러 가지 방법을 제공합니다. 파일은 QImage 객체를 생성할 때 불러올 수도 있고, 나중에 load() 또는 loadFromData() 함수를 사용하여 불러올 수도 있습니다. 또한 QImage는 주어진 데이터로부터 QImage를 생성하는 정적 함수 fromData()도 제공합니다. 이미지를 불러올 때, 파일 이름은 디스크에 있는 실제 파일을 가리키거나 애플리케이션의 내장 리소스 중 하나를 가리킬 수 있습니다. 애플리케이션 실행 파일에 이미지 및 기타 리소스 파일을 내장하는 방법에 대한 자세한 내용은 Qt 리소스 시스템 개요를 참조하십시오.
QImage 객체를 저장하려면 save() 함수를 호출하기만 하면 됩니다.
지원되는 파일 형식의 전체 목록은 ` QImageReader::supportedImageFormats()` 및 ` QImageWriter::supportedImageFormats()` 함수를 통해 확인할 수 있습니다. 새로운 파일 형식은 플러그인으로 추가할 수 있습니다. 기본적으로 Qt는 다음 형식을 지원합니다:
| 형식 | 설명 | Qt의 지원 여부 |
|---|---|---|
| BMP | Windows 비트맵 | 읽기/쓰기 |
| GIF | 그래픽 교환 형식 (선택 사항) | 읽기 |
| JPG | Joint Photographic Experts Group | 읽기/쓰기 |
| JPEG | Joint Photographic Experts Group | 읽기/쓰기 |
| PNG | 휴대용 네트워크 그래픽 | 읽기/쓰기 |
| PBM | 휴대용 비트맵 | 읽기 |
| PGM | 휴대용 그레이맵 | 읽기 |
| PPM | 휴대용 픽스맵 | 읽기/쓰기 |
| XBM | X11 비트맵 | 읽기/쓰기 |
| XPM | X11 픽스맵 | 읽기/쓰기 |
이미지 정보
QImage는 이미지에 대한 다양한 정보를 얻기 위해 사용할 수 있는 일련의 함수를 제공합니다:
| 사용 가능한 함수 | |
|---|---|
| 기하 정보 | size(), width(), height(), dotsPerMeterX() 및 dotsPerMeterY() 함수는 이미지 크기와 종횡비에 대한 정보를 제공합니다. rect() 함수는 이미지의 외곽 사각형을 반환합니다. valid() 함수는 주어진 좌표 쌍이 이 사각형 내에 있는지 여부를 알려줍니다. offset() 함수는 다른 이미지에 대해 상대적 위치를 설정할 때 이미지를 오프셋해야 하는 픽셀 수를 반환하며, 이 값은 setOffset() 함수를 사용하여 조정할 수도 있습니다. |
| 색상 | 픽셀의 색상은 해당 좌표를 pixel() 함수에 전달하여 가져올 수 있습니다. pixel() 함수는 이미지의 형식과 무관하게 색상을 QRgb 값으로 반환합니다. 단색 및 8비트 이미지의 경우, colorCount() 및 colorTable() 함수는 이미지 데이터를 저장하는 데 사용되는 색상 구성 요소에 대한 정보를 제공합니다. colorTable() 함수는 이미지의 전체 색상 테이블을 반환합니다. 단일 항목을 얻으려면, pixelIndex() 함수를 사용하여 주어진 좌표 쌍에 대한 픽셀 인덱스를 조회한 다음, color() 함수를 사용하여 색상을 조회하십시오. 8비트 이미지를 수동으로 생성하는 경우, 이미지에 유효한 색상 테이블을 설정해야 한다는 점에 유의하십시오. hasAlphaChannel() 함수는 이미지의 형식이 알파 채널을 지원하는지 여부를 알려줍니다. allGray() 및 isGrayscale() 함수는 이미지의 색상이 모두 회색조인지 여부를 알려줍니다. Pixel Manipulation 및 Image Transformations 섹션도 참조하십시오. |
| 텍스트 | text() 함수는 주어진 텍스트 키와 연관된 이미지 텍스트를 반환합니다. 이미지의 텍스트 키는 textKeys() 함수를 사용하여 가져올 수 있습니다. setText() 함수를 사용하여 이미지의 텍스트를 변경할 수 있습니다. |
| 저수준 정보 | depth() 함수는 이미지의 비트 심도를 반환합니다. 지원되는 비트 심도는 1(단색), 8, 16, 24 및 32비트입니다. bitPlaneCount() 함수는 사용된 비트 수를 알려줍니다. 자세한 내용은 Image Formats 섹션을 참조하십시오. format(), bytesPerLine() 및 sizeInBytes() 함수는 이미지에 저장된 데이터에 대한 저수준 정보를 제공합니다. cacheKey() 함수는 이 QImage 객체의 내용을 고유하게 식별하는 번호를 반환합니다. |
픽셀 조작
이미지의 픽셀을 조작하는 데 사용되는 함수는 이미지 형식에 따라 다릅니다. 그 이유는 단색 및 8비트 이미지는 인덱스 기반이며 색상 조회 테이블(CLUT)을 사용하는 반면, 32비트 이미지는 ARGB 값을 직접 저장하기 때문입니다. 이미지 형식에 대한 자세한 내용은 ‘ Image Formats ’ 섹션을 참조하십시오.
32비트 이미지의 경우, ` setPixel()` 함수를 사용하여 지정된 좌표의 픽셀 색상을 ARGB 4원색으로 지정된 다른 색상으로 변경할 수 있습니다. 적절한 ` QRgb ` 값을 생성하려면 ` qRgb()` 함수(주어진 RGB 값에 기본 알파 구성 요소를 추가하여, 즉 불투명한 색상을 생성)나 ` qRgba()` 함수를 사용하십시오. 예:
| 32비트 | |
|---|---|
![]() | |
8비트 및 단색 이미지의 경우, 픽셀 값은 이미지의 색상 테이블에서 가져온 인덱스에 불과합니다. 따라서 setPixel() 함수는 주어진 좌표에 있는 픽셀의 색상을 이미지의 색상 테이블에 미리 정의된 색상으로 변경하는 데만 사용할 수 있습니다. 즉, 픽셀의 인덱스 값만 변경할 수 있습니다. 이미지의 색상 테이블을 변경하거나 색상을 추가하려면 setColor() 함수를 사용하십시오.
색상 테이블의 항목은 QRgb 값으로 인코딩된 ARGB 4원색 벡터입니다. qRgb() 및 qRgba() 함수를 사용하여 setColor() 함수와 함께 사용할 수 있는 적절한 QRgb 값을 생성하십시오. 예:
| 8비트 | |
|---|---|
![]() | |
색상 채널당 8비트 이상의 이미지를 위한 방법입니다. setPixelColor() 및 pixelColor() 메서드를 사용하여 QColor 값을 설정하고 가져올 수 있습니다.
QImage는 또한 지정된 인덱스의 스캔라인에 있는 픽셀 데이터에 대한 포인터를 반환하는 scanLine() 함수와, 첫 번째 픽셀 데이터에 대한 포인터를 반환하는 bits() 함수를 제공합니다(이는 scanLine(0) 와 동일합니다).
이미지 형식
QImage에 저장된 각 픽셀은 정수로 표현됩니다. 정수의 크기는 형식에 따라 다릅니다. QImage는 Format 열거형으로 정의된 여러 이미지 형식을 지원합니다.
단색 이미지는 최대 두 가지 색상을 가진 색상 테이블에 1비트 인덱스를 사용하여 저장됩니다. 단색 이미지에는 빅 엔디안(MSB 우선)과 리틀 엔디안(LSB 우선) 비트 순서라는 두 가지 유형이 있습니다.
8비트 이미지는 색상 테이블에 대한 8비트 인덱스를 사용하여 저장되며, 즉 픽셀당 1바이트를 차지합니다. 색상 테이블은 QList<QRgb>이며, QRgb 타입 정의는 0xAARRGGBB 형식의 ARGB 4원조를 포함하는 unsigned int와 동일합니다.
32비트 이미지는 색상 테이블이 없으며, 대신 각 픽셀이 QRgb 값을 포함합니다. RGB(즉, 0xffRRGGBB), ARGB 및 사전 곱셈된 ARGB 값을 각각 저장하는 세 가지 유형의 32비트 이미지가 있습니다. 사전 곱셈된 형식에서는 빨강, 녹색, 파랑 채널에 알파 성분을 255로 나눈 값을 곱합니다.
이미지의 형식은 ` format()` 함수를 사용하여 확인할 수 있습니다. 이미지를 다른 형식으로 변환하려면 ` convertToFormat()` 함수를 사용하십시오. ` allGray()` 및 ` isGrayscale()` 함수는 컬러 이미지를 그레이스케일 이미지로 안전하게 변환할 수 있는지 여부를 알려줍니다.
이미지 변환
QImage는 원본 이미지를 변환한 새로운 이미지를 생성하기 위한 여러 함수를 지원합니다. createAlphaMask() 함수는 이 이미지의 알파 버퍼에서 1-bpp 마스크를 생성하여 반환하고, createHeuristicMask() 함수는 이 이미지에 대한 1-bpp 휴리스틱 마스크를 생성하여 반환합니다. 후자의 함수는 모서리 중 한 곳에서 색상을 선택한 다음, 모든 가장자리부터 시작하여 해당 색상의 픽셀을 제거하는 방식으로 작동합니다.
mirrored() 함수는 원하는 방향으로 이미지를 대칭 반전시킨 이미지를 반환하고, scaled() 함수는 원하는 크기의 직사각형으로 크기가 조정된 이미지의 복사본을 반환하며, rgbSwapped() 함수는 RGB 이미지에서 BGR 이미지를 생성합니다.
scaledToWidth() 및 scaledToHeight() 함수는 크기가 조정된 이미지의 복사본을 반환합니다.
transformed() 함수는 주어진 변환 행렬과 변환 모드로 변환된 이미지의 복사본을 반환합니다. 내부적으로, 원치 않는 평행 이동을 보정하기 위해 변환 행렬이 조정됩니다. 즉, transformed()는 원본 이미지의 모든 변환된 점을 포함하는 가장 작은 이미지를 반환합니다. 정적 함수인 trueMatrix()는 이미지 변환에 사용된 실제 행렬을 반환합니다.
또한 이미지의 속성을 그 자리에서 변경하는 함수들도 있습니다:
| 함수 | 설명 |
|---|---|
| setDotsPerMeterX() | 물리적 1미터에 가로로 들어가는 픽셀 수를 설정하여 종횡비를 정의합니다. |
| setDotsPerMeterY() | 물리적 1미터에 수직으로 들어가는 픽셀 수를 설정하여 종횡비를 정의합니다. |
| fill() | 지정된 픽셀 값으로 이미지 전체를 채웁니다. |
| invertPixels() | 지정된 명암비( InvertMode ) 값을 사용하여 이미지의 모든 픽셀 값을 반전시킵니다. |
| setColorTable() | 색상 인덱스를 변환하는 데 사용되는 색상 테이블을 설정합니다. 단색 및 8비트 형식에서만 사용 가능합니다. |
| setColorCount() | 색상 테이블의 크기를 조정합니다. 단색 및 8비트 형식에서만 사용 가능합니다. |
QImageReader, QImageWriter, QPixmap, QSvgRenderer, 이미지 합성 예제 및 낙서 예제도참조하십시오 .
멤버 유형 설명서
enum QImage::Format
Qt Image Formats에서는 다음 이미지 형식을 사용할 수 있습니다. 표 뒤의 참고 사항을 참조하십시오.
| 상수 | 값 | 설명 |
|---|---|---|
QImage::Format_Invalid | 0 | 이미지가 유효하지 않습니다. |
QImage::Format_Mono | 1 | 이미지는 픽셀당 1비트로 저장됩니다. 바이트는 최상위 비트(MSB)가 먼저 오도록 패킹됩니다. |
QImage::Format_MonoLSB | 2 | 이미지는 픽셀당 1비트로 저장됩니다. 바이트는 최하위 비트(LSB)가 먼저 오도록 패킹됩니다. |
QImage::Format_Indexed8 | 3 | 이미지는 컬러맵에 대한 8비트 인덱스를 사용하여 저장됩니다. |
QImage::Format_RGB32 | 4 | 이미지는 32비트 RGB 형식(0xffRRGGBB)으로 저장됩니다. |
QImage::Format_ARGB32 | 5 | 이미지는 32비트 ARGB 형식(0xAARRGGBB)을 사용하여 저장됩니다. |
QImage::Format_ARGB32_Premultiplied | 6 | 이미지는 사전 곱셈된 32비트 ARGB 형식(0xAARRGGBB)을 사용하여 저장됩니다. 즉, 빨강, 녹색, 파랑 채널에 알파 성분을 255로 나눈 값을 곱합니다. (RR, GG 또는 BB의 값이 알파 채널의 값보다 큰 경우, 결과는 정의되지 않습니다.) 특정 연산(예: 알파 블렌딩을 사용한 이미지 합성)은 일반 ARGB32보다 사전 곱해진 ARGB32를 사용할 때 더 빠릅니다. |
QImage::Format_RGB16 | 7 | 이미지는 16비트 RGB 형식(5-6-5)으로 저장됩니다. |
QImage::Format_ARGB8565_Premultiplied | 8 | 이미지는 사전 곱해진 24비트 ARGB 형식(8-5-6-5)을 사용하여 저장됩니다. |
QImage::Format_RGB666 | 9 | 이미지는 24비트 RGB 형식(6-6-6)으로 저장됩니다. 사용되지 않는 최상위 비트는 항상 0입니다. |
QImage::Format_ARGB6666_Premultiplied | 10 | 이미지는 프리멀티플라이드 24비트 ARGB 형식(6-6-6-6)으로 저장됩니다. |
QImage::Format_RGB555 | 11 | 이미지는 16비트 RGB 형식(5-5-5)으로 저장됩니다. 사용되지 않는 최상위 비트는 항상 0입니다. |
QImage::Format_ARGB8555_Premultiplied | 12 | 이미지는 사전 곱셈된 24비트 ARGB 형식(8-5-5-5)으로 저장됩니다. |
QImage::Format_RGB888 | 13 | 이미지는 24비트 RGB 형식(8-8-8)으로 저장됩니다. |
QImage::Format_RGB444 | 14 | 이미지는 16비트 RGB 형식(4-4-4)으로 저장됩니다. 사용되지 않는 비트는 항상 0입니다. |
QImage::Format_ARGB4444_Premultiplied | 15 | 이미지는 사전 곱셈된 16비트 ARGB 형식(4-4-4-4)으로 저장됩니다. |
QImage::Format_RGBX8888 (since Qt 5.2) | 16 | 이미지는 32비트 바이트 순서 RGB(x) 형식(8-8-8-8)으로 저장됩니다. 이는 Format_RGBA8888과 동일하지만, 알파 값은 항상 255여야 한다는 점이 다릅니다. |
QImage::Format_RGBA8888 (since Qt 5.2) | 17 | 이미지는 32비트 바이트 순서 RGBA 형식(8-8-8-8)을 사용하여 저장됩니다. |
QImage::Format_RGBA8888_Premultiplied (since Qt 5.2) | 18 | 이미지는 사전 곱해진 32비트 바이트 순서 RGBA 형식(8-8-8-8)을 사용하여 저장됩니다. |
QImage::Format_BGR30 (since Qt 5.4) | 19 | 이미지는 32비트 BGR 형식(x-10-10-10)으로 저장됩니다. |
QImage::Format_A2BGR30_Premultiplied (since Qt 5.4) | 20 | 이미지는 32비트 사전 곱셈 ABGR 형식(2-10-10-10)을 사용하여 저장됩니다. |
QImage::Format_RGB30 (since Qt 5.4) | 21 | 이미지는 32비트 RGB 형식(x-10-10-10)으로 저장됩니다. |
QImage::Format_A2RGB30_Premultiplied (since Qt 5.4) | 22 | 이미지는 32비트 사전 곱셈 ARGB 형식(2-10-10-10)으로 저장됩니다. |
QImage::Format_Alpha8 (since Qt 5.5) | 23 | 이미지는 8비트 알파 전용 형식으로 저장됩니다. |
QImage::Format_Grayscale8 (since Qt 5.5) | 24 | 이미지는 8비트 그레이스케일 형식으로 저장됩니다. |
QImage::Format_Grayscale16 (since Qt 5.13) | 28 | 이미지는 16비트 그레이스케일 형식으로 저장됩니다. |
QImage::Format_RGBX64 (since Qt 5.12) | 25 | 이미지는 64비트 하프워드 순서 RGB(x) 형식(16-16-16-16)을 사용하여 저장됩니다. 이는 Format_RGBA64와 동일하지만, 알파 값은 항상 65535여야 한다는 점이 다릅니다. |
QImage::Format_RGBA64 (since Qt 5.12) | 26 | 이미지는 64비트 하프워드 순서 RGBA 형식(16-16-16-16)으로 저장됩니다. |
QImage::Format_RGBA64_Premultiplied (since Qt 5.12) | 27 | 이미지는 사전 곱셈된 64비트 하프워드 순서 RGBA 형식(16-16-16-16)을 사용하여 저장됩니다. |
QImage::Format_BGR888 (since Qt 5.14) | 29 | 이미지는 24비트 BGR 형식으로 저장됩니다. |
QImage::Format_RGBX16FPx4 (since Qt 6.2) | 30 | 이미지는 4개의 16비트 하프워드 부동 소수점 RGBx 형식(16FP-16FP-16FP-16FP)을 사용하여 저장됩니다. 이는 Format_RGBA16FPx4와 동일하지만, 알파 값은 항상 1.0이어야 합니다. |
QImage::Format_RGBA16FPx4 (since Qt 6.2) | 31 | 이미지는 4개의 16비트 하프워드 부동 소수점 RGBA 형식(16FP-16FP-16FP-16FP)을 사용하여 저장됩니다. |
QImage::Format_RGBA16FPx4_Premultiplied (since Qt 6.2) | 32 | 이미지는 사전 곱셈된 4개의 16비트 하프워드 부동 소수점 RGBA 형식(16FP-16FP-16FP-16FP)을 사용하여 저장됩니다. |
QImage::Format_RGBX32FPx4 (since Qt 6.2) | 33 | 이미지는 4개의 32비트 부동 소수점 RGBx 형식(32FP-32FP-32FP-32FP)을 사용하여 저장됩니다. 이는 알파 값이 항상 1.0이어야 한다는 점을 제외하면 Format_RGBA32FPx4와 동일합니다. |
QImage::Format_RGBA32FPx4 (since Qt 6.2) | 34 | 이미지는 4개의 32비트 부동 소수점 RGBA 형식(32FP-32FP-32FP-32FP)을 사용하여 저장됩니다. |
QImage::Format_RGBA32FPx4_Premultiplied (since Qt 6.2) | 35 | 이미지는 미리 곱해진 4개의 32비트 부동 소수점 RGBA 형식(32FP-32FP-32FP-32FP)을 사용하여 저장됩니다. |
QImage::Format_CMYK8888 (since Qt 6.8) | 36 | 이미지는 32비트 바이트 순서 CMYK 형식으로 저장됩니다. |
바이트 순서 형식의 색상 구성 요소 순서( QPixelFormat::typeInterpretation)는 QPixelFormat::UnsignedByte 이며, 이는 플랫폼의 엔디안(endianness)에 관계없이 개별 색상 구성 요소가 0xRR, 0xGG, 0xBB, 0xAA와 같은 고정된 순서로 메모리에 저장됨을 의미합니다. 이러한 형식은 개별 바이트 단위로 읽어야 하며, 더 큰 청크 단위로 읽을 경우 QPixelFormat::BigEndian 로 해석되어야 합니다.
참고: QImage::Format_Indexed8 또는 QImage::Format_CMYK8888 형식의 QImage 에그리기는 지원되지 않습니다.
참고: QPainter 를 사용하여 이러한 형식 대부분에 직접 렌더링하는 것은피하십시오 . 렌더링은 Format_RGB32 및 Format_ARGB32_Premultiplied 형식에 가장 최적화되어 있으며, 그 다음으로 Format_RGB16, Format_RGBX8888, Format_RGBA8888_Premultiplied, Format_RGBX64 및 Format_RGBA64_Premultiplied 형식에 최적화되어 있습니다.
format() 및 convertToFormat()도 참조하십시오 .
enum QImage::InvertMode
이 열거형 유형은 ` invertPixels()` 함수에서 픽셀 값을 어떻게 반전시켜야 하는지를 설명하는 데 사용됩니다.
| 상수 | 상수 | 상수값 |
|---|---|---|
QImage::InvertRgb | 0 | RGB 값만 반전하고 알파 채널은 변경하지 않습니다. |
QImage::InvertRgba | 1 | 알파 채널을 포함한 모든 채널을 반전합니다. |
invertPixels()도 참조하십시오 .
멤버 함수 설명
[noexcept] QImage::QImage()
null 이미지를 생성합니다.
isNull()도 참조하십시오 .
[explicit] QImage::QImage(const char *const[] xpm)
지정된 xpm 이미지를 사용하여 이미지를 생성합니다.
이미지가 유효한 XPM 이미지인지 확인하십시오. 오류는 아무런 메시지 없이 무시됩니다.
비정상적인 선언을 사용하여 XPM 변수의 크기를 약간 줄일 수 있다는 점에 유의하십시오:
static const char * const start_xpm[] = {
"16 15 8 1",
"a c #cec6bd",
// etc.
};추가된 ` const ` 선언은 전체 정의를 읽기 전용으로 만들어, 효율성을 약간 높여주며(예: 코드가 공유 라이브러리에 포함된 경우), 애플리케이션과 함께 ROM에 저장할 수 있게 해줍니다.
QImage::QImage(const QSize &size, QImage::Format format)
지정된 ` size ` 및 ` format`을 사용하여 이미지를 생성합니다.
메모리를 할당할 수 없는 경우 null 이미지가 반환됩니다.
경고: 이 메서드는 초기화되지 않은 데이터를 가진 QImage를 생성합니다. QPainter 을 사용하여 이미지를 그리기 전에 fill()를 호출하여 이미지에 적절한 픽셀 값을 채워야 합니다.
[explicit] QImage::QImage(const QString &fileName, const char *format = nullptr)
이미지를 생성하고, 지정된 fileName 를 사용하여 파일에서 이미지를 불러오려고 시도합니다.
로더는 지정된 format 를 사용하여 이미지를 읽으려고 시도합니다. format 가 지정되지 않은 경우(기본값), 파일의 확장자와 헤더를 기반으로 자동으로 감지됩니다. 자세한 내용은 {QImageReader::setAutoDetectImageFormat()}{QImageReader}를 참조하십시오.
이미지 로딩에 실패한 경우, 이 객체는 null 이미지입니다.
파일 이름은 디스크에 실제로 존재하는 파일을 가리키거나, 애플리케이션의 내장 리소스 중 하나를 가리킬 수 있습니다. 애플리케이션 실행 파일에 이미지 및 기타 리소스 파일을 내장하는 방법에 대한 자세한 내용은 리소스 시스템 개요를 참조하십시오.
isNull() 및 Reading and Writing Image Files도 참조하십시오 .
QImage::QImage(int width, int height, QImage::Format format)
지정된 ` width`, ` height ` 및 ` format`을 사용하여 이미지를 생성합니다.
메모리를 할당할 수 없는 경우 null 이미지가 반환됩니다.
경고: 이 함수는 초기화되지 않은 데이터를 가진 QImage를 생성합니다. QPainter 를 사용하여 이미지에 그리기 전에 fill()를 호출하여 이미지에 적절한 픽셀 값을 채워야 합니다.
QImage::QImage(const uchar *data, int width, int height, QImage::Format format, QImageCleanupFunction cleanupFunction = nullptr, void *cleanupInfo = nullptr)
주어진 width, height 및 format 을 사용하여, 기존 읽기 전용 메모리 버퍼 data 을 활용하는 이미지를 생성합니다. width 와 height 는 픽셀 단위로 지정되어야 하며, data 는 32비트 정렬되어야 하고, 이미지 내 데이터의 각 스캔라인 또한 32비트 정렬되어야 합니다.
버퍼는 QImage의 수명 기간 내내, 그리고 수정되지 않았거나 원본 버퍼에서 분리되지 않은 모든 복사본에 대해 유효한 상태를 유지해야 합니다. 이미지는 소멸 시 버퍼를 삭제하지 않습니다. 마지막 복사본이 소멸될 때 호출될 함수 포인터 cleanupFunction 와 추가 포인터 cleanupInfo 를 제공할 수 있습니다.
format 가 인덱스 색상 형식인 경우, 이미지 색상 테이블은 처음에는 비어 있으며, 이미지를 사용하기 전에 setColorCount() 또는 setColorTable()를 통해 충분히 확장해야 합니다.
비const 데이터 버퍼를 인수로 받는 유사한 QImage 생성자와는 달리, 이 버전은 버퍼의 내용을 절대 변경하지 않습니다. 예를 들어, QImage::bits()를 호출하면 생성자에 전달된 버퍼가 아닌 이미지의 딥 복사본이 반환됩니다. 이를 통해 원시 데이터가 변경될 가능성 없이 원시 데이터로부터 QImage를 생성하는 효율성을 확보할 수 있습니다.
QImage::QImage(uchar *data, int width, int height, QImage::Format format, QImageCleanupFunction cleanupFunction = nullptr, void *cleanupInfo = nullptr)
주어진 ` width`, ` height ` 및 ` format`을 사용하여, 기존 메모리 버퍼 ` data`을 활용하는 이미지를 생성합니다. ` width `과 ` height `는 픽셀 단위로 지정되어야 하며, ` data `은 32비트 정렬되어야 하고, 이미지의 각 스캔라인 데이터 역시 32비트 정렬되어야 합니다.
버퍼는 QImage의 수명 기간 내내, 그리고 수정되지 않았거나 원본 버퍼에서 분리되지 않은 모든 복사본에 대해 유효한 상태를 유지해야 합니다. 이미지는 소멸 시 버퍼를 삭제하지 않습니다. 마지막 복사본이 소멸될 때 호출될 함수 포인터 cleanupFunction 와 추가 포인터 cleanupInfo 를 제공할 수 있습니다.
format 가 인덱스 색상 형식인 경우, 이미지 색상 테이블은 초기에는 비어 있으며, 이미지를 사용하기 전에 setColorCount() 또는 setColorTable()를 통해 충분히 확장되어야 합니다.
QImage::QImage(const uchar *data, int width, int height, qsizetype bytesPerLine, QImage::Format format, QImageCleanupFunction cleanupFunction = nullptr, void *cleanupInfo = nullptr)
주어진 ` width`, ` height ` 및 ` format`을 사용하여, 기존 메모리 버퍼 ` data`을 활용하는 이미지를 생성합니다. ` width `과 ` height `은 픽셀 단위로 지정해야 합니다. ` bytesPerLine `은 한 줄당 바이트 수(스트라이드)를 지정합니다.
버퍼는 QImage의 수명 기간 내내, 그리고 수정되지 않았거나 원본 버퍼에서 분리되지 않은 모든 복사본에 대해 유효한 상태를 유지해야 합니다. 이미지는 소멸 시 버퍼를 삭제하지 않습니다. 마지막 복사본이 소멸될 때 호출될 함수 포인터 cleanupFunction 와 추가 포인터 cleanupInfo 를 제공할 수 있습니다.
format 가 인덱스 색상 형식인 경우, 이미지 색상 테이블은 처음에는 비어 있으며 이미지를 사용하기 전에 setColorCount() 또는 setColorTable()를 통해 충분히 확장해야 합니다.
비const 데이터 버퍼를 인수로 받는 유사한 QImage 생성자와는 달리, 이 버전은 버퍼의 내용을 절대 변경하지 않습니다. 예를 들어, QImage::bits()를 호출하면 생성자에 전달된 버퍼가 아닌 이미지의 심층 복사본이 반환됩니다. 이를 통해 원시 데이터가 변경될 가능성 없이 원시 데이터로부터 QImage를 효율적으로 생성할 수 있습니다.
QImage::QImage(uchar *data, int width, int height, qsizetype bytesPerLine, QImage::Format format, QImageCleanupFunction cleanupFunction = nullptr, void *cleanupInfo = nullptr)
주어진 ` width`, ` height ` 및 ` format`을 사용하여, 기존 메모리 버퍼 ` data`을 활용하는 이미지를 생성합니다. ` width ` 및 ` height `은 픽셀 단위로 지정해야 합니다. ` bytesPerLine `은 행당 바이트 수(스트라이드)를 지정합니다.
버퍼는 QImage의 수명 기간 동안, 그리고 수정되지 않았거나 원본 버퍼에서 분리되지 않은 모든 복사본에 대해 유효한 상태를 유지해야 합니다. 이미지는 소멸 시 버퍼를 삭제하지 않습니다. 마지막 복사본이 소멸될 때 호출될 함수 포인터 cleanupFunction 와 추가 포인터 cleanupInfo 를 제공할 수 있습니다.
format 가 인덱스 색상 형식인 경우, 이미지 색상 테이블은 처음에는 비어 있으며, 이미지를 사용하기 전에 setColorCount() 또는 setColorTable()를 통해 충분히 확장되어야 합니다.
QImage::QImage(const QImage &image)
지정된 ` image`의 얕은 복사본을 생성합니다.
얕은 복사에 대한 자세한 내용은 '암시적 데이터 공유' 문서를 참조하십시오.
copy()도 참조하십시오 .
[noexcept] QImage::QImage(QImage &&other)
QImage 인스턴스를 이동 생성하여, 해당 인스턴스가 ` other `가 가리키던 것과 동일한 객체를 가리키게 만듭니다.
[virtual noexcept] QImage::~QImage()
이미지를 삭제하고 정리합니다.
bool QImage::allGray() const
이미지의 모든 색상이 회색조인 경우(즉, 빨강, 녹색, 파랑 성분이 모두 동일한 경우) ` true `를 반환하고, 그렇지 않은 경우 `false`를 반환합니다.
컬러 테이블이 없는 이미지의 경우 이 함수의 실행 속도가 느리다는 점에 유의하십시오.
isGrayscale()도 참조하십시오 .
void QImage::applyColorTransform(const QColorTransform &transform)
이미지의 모든 픽셀에 색상 변환 transform 을 적용합니다.
[since 6.8] void QImage::applyColorTransform(const QColorTransform &transform, QImage::Format toFormat, Qt::ImageConversionFlags flags = Qt::AutoColor)
이미지의 모든 픽셀에 색상 변환 transform 을 적용하고, 이미지 형식을 toFormat 로 변환합니다.
지정된 이미지 변환 flags 은 형식 변환 과정에서 이미지 데이터가 처리되는 방식을 제어합니다.
이 함수는 Qt 6.8에서 도입되었습니다.
int QImage::bitPlaneCount() const
이미지의 비트 플레인 수를 반환합니다.
비트 플레인 수는 각 픽셀에 대한 색상 및 투명도 정보의 비트 수를 의미합니다. 이미지 형식에 사용되지 않는 비트가 포함된 경우, 이 값은 색상 심도(depth)와 다르며(즉, 더 작습니다).
depth(), format(), 및 Image Formats도 참조하십시오 .
uchar *QImage::bits()
첫 번째 픽셀 데이터에 대한 포인터를 반환합니다. 이는 ` scanLine(0)`과 동일합니다.
QImage 는 암시적 데이터 공유를 사용한다는 점에 유의하십시오. 이 함수는 공유된 픽셀 데이터에 대해 심층 복사를 수행하므로, 이 QImage 가 현재 반환 값을 사용하는 유일한 함수임을 보장합니다.
scanLine(), sizeInBytes(), constBits()도 참조하십시오 .
const uchar *QImage::bits() const
QImage 는 암시적 데이터 공유를 사용하지만, 반환되는 데이터가 const이므로 이 함수는 공유된 픽셀 데이터에 대해 심층 복사를 수행하지 않는다는 점에 유의하십시오.
이 함수는 오버로드된 함수입니다.
qsizetype QImage::bytesPerLine() const
이미지 스캔라인당 바이트 수를 반환합니다.
height()의 값이 0이 아닌 경우, 이는 sizeInBytes() / height()과 동일합니다.
scanLine()도 참조하십시오 .
qint64 QImage::cacheKey() const
이 ` QImage ` 객체의 내용을 식별하는 숫자를 반환합니다. 서로 다른 ` QImage ` 객체는 동일한 내용을 가리키는 경우에만 동일한 키를 가질 수 있습니다.
이미지가 변경되면 키도 변경됩니다.
QRgb QImage::color(int i) const
색상 테이블에서 인덱스 i 에 해당하는 색상을 반환합니다. 첫 번째 색상은 인덱스 0에 있습니다.
이미지의 색상 테이블에 포함된 색상은 ARGB 4원색 벡터(QRgb)로 지정됩니다. 색상 값의 각 성분을 얻으려면 qAlpha(), qRed(), qGreen() 및 qBlue() 함수를 사용하십시오.
setColor(), pixelIndex(), Pixel Manipulation도 참조하십시오 .
int QImage::colorCount() const
이미지의 색상 테이블 크기를 반환합니다.
32-bpp 이미지의 경우 색상 테이블을 사용하지 않고 픽셀 값을 ARGB 4원조로 인코딩하므로, colorCount()는 0을 반환한다는 점에 유의하십시오.
setColorCount() 및 Image Information도 참조하십시오 .
QColorSpace QImage::colorSpace() const
색 공간이 정의되어 있는 경우, 이미지의 색 공간을 반환합니다.
setColorSpace()도 참조하십시오 .
QList<QRgb> QImage::colorTable() const
이미지의 색상 테이블에 포함된 색상 목록을 반환하며, 이미지에 색상 테이블이 없는 경우에는 빈 목록을 반환합니다.
setColorTable(), colorCount(), color()함수도 참조하십시오 .
[since 6.4] QImage QImage::colorTransformed(const QColorTransform &transform) const &
이미지의 모든 픽셀에 대해 transform 를 적용하여 변환된 이미지 색상을 반환합니다.
참고: ` transform `의 소스 색 공간이 이 이미지의 형식과 호환되지 않는경우 , `null` QImage 을 반환합니다. ` transform `의 대상 색 공간이 이 이미지의 형식과 호환되지 않는 경우, 이미지는 호환되는 형식으로 변환됩니다. 대상 픽셀 형식의 선택에 대한 더 세밀한 제어를 원한다면, 이 메서드의 세 개의 인자를 갖는 오버로드 버전을 참조하십시오.
이 함수는 Qt 6.4에서 도입되었습니다.
applyColorTransform()도 참조하십시오 .
[since 6.8] QImage QImage::colorTransformed(const QColorTransform &transform, QImage::Format toFormat, Qt::ImageConversionFlags flags = Qt::AutoColor) const &
이미지의 모든 픽셀에 대해 ` transform `를 사용하여 변환된 이미지 색상을 반환하며, ` toFormat` 형식의 이미지를 반환합니다.
지정된 이미지 변환 flags 는 형식 변환 과정에서 이미지 데이터가 어떻게 처리되는지를 제어합니다.
참고: transform 의 소스 색상 공간이 이 이미지의 형식과 호환되지 않거나, 대상 색상 공간이 toFormat 와 호환되지 않는경우 , null QImage 을 반환합니다.
이 함수는 Qt 6.8에서 도입되었습니다.
applyColorTransform()도 참조하십시오 .
[since 6.4] QImage QImage::colorTransformed(const QColorTransform &transform) &&
이미지의 모든 픽셀에 대해 ` transform `을 적용하여 변환된 이미지 색상을 반환합니다.
이 함수는 오버로드된 함수입니다.
이 함수는 Qt 6.4에서 도입되었습니다.
applyColorTransform()도 참조하십시오 .
[since 6.8] QImage QImage::colorTransformed(const QColorTransform &transform, QImage::Format format, Qt::ImageConversionFlags flags = Qt::AutoColor) &&
이미지의 모든 픽셀에 대해 ` transform `을 적용하여 변환된 이미지 색상을 반환합니다.
이 함수는 오버로드된 함수입니다.
이 함수는 Qt 6.8에서 도입되었습니다.
applyColorTransform()도 참조하십시오 .
const uchar *QImage::constBits() const
첫 번째 픽셀 데이터에 대한 포인터를 반환합니다.
QImage 는 암시적 데이터 공유를 사용하지만, 이 함수는 반환되는 데이터가 const이므로 공유된 픽셀 데이터에 대한 심층 복사를 수행하지 않는다는 점에 유의하십시오.
bits() 및 constScanLine()도 참조하십시오 .
const uchar *QImage::constScanLine(int i) const
인덱스 i 에 해당하는 스캔라인의 픽셀 데이터에 대한 포인터를 반환합니다. 첫 번째 스캔라인은 인덱스 0에 있습니다.
스캔라인 데이터는 최소 32비트 정렬되어 있습니다. 64비트 형식의 경우 64비트 정수의 기본 정렬 규칙을 따릅니다(대부분의 플랫폼에서는 64비트이지만, 특히 i386에서는 32비트입니다).
QImage 은 암시적 데이터 공유를 사용하지만, 반환되는 데이터는 const이므로 이 함수는 공유된 픽셀 데이터에 대한 심층 복사를 수행하지 않습니다.
scanLine() 및 constBits()도 참조하십시오 .
void QImage::convertTo(QImage::Format format, Qt::ImageConversionFlags flags = Qt::AutoColor)
지정된 format 로 이미지를 제자리에서 변환하며, 필요한 경우 이미지를 분리합니다.
지정된 이미지 변환 flags 는 변환 과정에서 이미지 데이터가 어떻게 처리되는지를 제어합니다.
convertedTo()도 참조하십시오 .
void QImage::convertToColorSpace(const QColorSpace &colorSpace)
이미지를 ‘ colorSpace ’로 변환합니다.
이미지에 유효한 색 공간이 없는 경우, 이 메서드는 아무 작업도 수행하지 않습니다.
참고: ` colorSpace `가 현재 형식과 호환되지 않는경우 , 이미지는 호환되는 형식으로 변환됩니다.
convertedToColorSpace() 및 setColorSpace()도 참조하십시오 .
[since 6.8] void QImage::convertToColorSpace(const QColorSpace &colorSpace, QImage::Format format, Qt::ImageConversionFlags flags = Qt::AutoColor)
이미지를 colorSpace 및 format 로 변환합니다.
이미지에 유효한 색상 공간이 없거나, 색상 공간이 해당 형식과 호환되지 않는 경우 이 메서드는 아무 작업도 수행하지 않습니다.
지정된 이미지 변환 flags 는 형식 변환 과정에서 이미지 데이터가 처리되는 방식을 제어합니다.
이 함수는 Qt 6.8에서 도입되었습니다.
convertedToColorSpace() 및 setColorSpace()도 참조하십시오 .
QImage QImage::convertToFormat(QImage::Format format, Qt::ImageConversionFlags flags = Qt::AutoColor) &&
QImage QImage::convertToFormat(QImage::Format format, Qt::ImageConversionFlags flags = Qt::AutoColor) const &
지정된 format 에 있는 이미지의 복사본을 반환합니다.
지정된 이미지 변환 flags 는 변환 과정에서 이미지 데이터가 어떻게 처리되는지를 제어합니다.
convertTo() 및 Image Formats도 참조하십시오 .
QImage QImage::convertToFormat(QImage::Format format, const QList<QRgb> &colorTable, Qt::ImageConversionFlags flags = Qt::AutoColor) const
지정된 ` format`로 변환된 이미지의 복사본을, 지정된 ` colorTable`을 사용하여 반환합니다.
RGB 형식에서 인덱스 형식으로의 변환은 처리 속도가 느린 작업이며, 디더링 없이 가장 가까운 색상을 사용하는 간단한 방식을 적용합니다.
이 함수는 오버로딩된 함수입니다.
[since 6.0] QImage QImage::convertedTo(QImage::Format format, Qt::ImageConversionFlags flags = Qt::AutoColor) &&
[since 6.0] QImage QImage::convertedTo(QImage::Format format, Qt::ImageConversionFlags flags = Qt::AutoColor) const &
지정된 format 에 있는 이미지의 복사본을 반환합니다.
지정된 이미지 변환 flags 는 변환 과정에서 이미지 데이터가 처리되는 방식을 제어합니다.
이 함수들은 Qt 6.0에서 도입되었습니다.
convertTo() 및 Image Formats도 참조하십시오 .
QImage QImage::convertedToColorSpace(const QColorSpace &colorSpace) const
colorSpace 로 변환된 이미지를 반환합니다.
이미지에 유효한 색상 공간이 없는 경우, null QImage 가 반환됩니다.
참고: ` colorSpace `가 현재 형식과 호환되지 않는경우 , 반환되는 이미지도 호환되는 형식으로 변환됩니다. 반환되는 이미지 형식을 더 세밀하게 제어하려면 이 메서드의 세 개의 인자를 받는 오버로드를 참조하십시오.
convertToColorSpace() 및 colorTransformed()도 참조하십시오 .
[since 6.8] QImage QImage::convertedToColorSpace(const QColorSpace &colorSpace, QImage::Format format, Qt::ImageConversionFlags flags = Qt::AutoColor) &&
[since 6.8] QImage QImage::convertedToColorSpace(const QColorSpace &colorSpace, QImage::Format format, Qt::ImageConversionFlags flags = Qt::AutoColor) const &
colorSpace 및 format 로 변환된 이미지를 반환합니다.
이미지에 유효한 색상 공간이 없는 경우, null 값의 QImage 가 반환됩니다.
지정된 이미지 변환 flags 는 형식 변환 과정에서 이미지 데이터가 처리되는 방식을 제어합니다.
이 함수들은 Qt 6.8에서 도입되었습니다.
colorTransformed()도 참조하십시오 .
QImage QImage::copy(const QRect &rectangle = QRect()) const
이미지의 일부 영역을 새로운 이미지로 반환합니다.
반환된 이미지는 이 이미지의 (rectangle.x(), rectangle.y()) 위치에서 복사되며, 항상 지정된 rectangle 크기를 갖습니다.
이 이미지 외부의 영역에 있는 픽셀은 0으로 설정됩니다. 32비트 RGB 이미지의 경우, 이는 검은색을 의미하고, 32비트 ARGB 이미지의 경우, 이는 투명한 검은색을 의미하며, 8비트 이미지의 경우, 색상 테이블에서 인덱스 0에 해당하는 색상(어떤 색상이든 가능)을 의미하고, 1비트 이미지의 경우, 이는 Qt::color0 를 의미합니다.
주어진 rectangle 가 빈 사각형인 경우, 이미지 전체가 복사됩니다.
QImage()도 참조하십시오 .
QImage QImage::copy(int x, int y, int width, int height) const
반환되는 이미지는 이 이미지의 (x, y) 위치에서 복사되며, 항상 지정된 width 및 height 를 갖게 됩니다. 이 이미지 범위를 벗어난 영역의 픽셀은 0으로 설정됩니다.
이 함수는 오버로드된 함수입니다.
QImage QImage::createAlphaMask(Qt::ImageConversionFlags flags = Qt::AutoColor) const
이 이미지의 알파 버퍼에서 1-bpp 마스크를 생성하여 반환합니다. 이미지의 형식이 ‘ QImage::Format_RGB32 ’인 경우 null 이미지를 반환합니다.
flags 인수는 Qt::ImageConversionFlags 의 비트별 OR 연산 결과이며, 변환 과정을 제어합니다. flags에 0을 전달하면 모든 기본 옵션이 설정됩니다.
반환된 이미지는 리틀 엔디안 비트 순서(즉, 이미지 형식이 QImage::Format_MonoLSB)를 가지며, convertToFormat() 함수를 사용하여 빅 엔디안(QImage::Format_Mono)으로 변환할 수 있습니다.
createHeuristicMask() 및 Image Transformations도 참조하십시오 .
QImage QImage::createHeuristicMask(bool clipTight = true) const
이 이미지에 대한 1-bpp 휴리스틱 마스크를 생성하여 반환합니다.
이 함수는 네 모서리 중 한 곳에서 색상을 선택한 다음, 모든 가장자리부터 시작하여 해당 색상의 픽셀을 제거하는 방식으로 작동합니다. 네 모서리가 어떤 색상을 마스크 처리할지 결정합니다. 동점인 경우(일반적으로 이 함수가 해당 이미지에 적용될 수 없음을 의미함), 결과는 임의로 결정됩니다.
반환된 이미지는 리틀 엔디안 비트 순서(즉, 이미지 형식은 QImage::Format_MonoLSB)를 가지며, convertToFormat() 함수를 사용하여 빅 엔디안(QImage::Format_Mono)으로 변환할 수 있습니다.
clipTight 가 true(기본값)인 경우, 마스크는 픽셀을 덮을 수 있을 만큼만 크며, 그렇지 않은 경우 마스크는 데이터 픽셀보다 큽니다.
이 함수는 알파 버퍼를 무시한다는 점에 유의하십시오.
createAlphaMask() 및 Image Transformations도 참조하십시오 .
QImage QImage::createMaskFromColor(QRgb color, Qt::MaskMode mode = Qt::MaskInColor) const
지정된 ‘ color ’ 값을 기반으로 이 이미지의 마스크를 생성하여 반환합니다. ‘ mode ’가 ‘MaskInColor’(기본값)인 경우, ‘ color ’와 일치하는 모든 픽셀은 마스크에서 불투명한 픽셀이 됩니다. ‘ mode ’가 ‘MaskOutColor’인 경우, 지정된 색상과 일치하는 모든 픽셀은 투명해집니다.
createAlphaMask() 및 createHeuristicMask()도 참조하십시오 .
int QImage::depth() const
이미지의 색상 심도를 반환합니다.
이미지 깊이는 단일 픽셀을 저장하는 데 사용되는 비트 수를 말하며, 픽셀당 비트 수(bpp)라고도 합니다.
지원되는 색상 심도는 1, 8, 16, 24, 32 및 64입니다.
bitPlaneCount(), convertToFormat(), Image Formats 및 Image Information도 참조하십시오 .
[since 6.2] QSizeF QImage::deviceIndependentSize() const
이미지의 크기를 장치 독립 픽셀(DIP) 단위로 반환합니다.
이 값은 사용자 인터페이스 크기 계산에 이미지 크기를 사용할 때 사용해야 합니다.
반환 값은 image.size() / image.devicePixelRatio()과 동일합니다.
이 함수는 Qt 6.2에서 도입되었습니다.
qreal QImage::devicePixelRatio() const
이미지의 장치 픽셀 비율을 반환합니다. 이는 장치 픽셀과 장치 독립 픽셀 간의 비율입니다.
이미지 크기를 기반으로 레이아웃 기하 구조를 계산할 때 이 함수를 사용합니다: QSize layoutSize = image.size() / image.devicePixelRatio()
기본값은 1.0입니다.
setDevicePixelRatio() 및 QImageReader도 참조하십시오 .
int QImage::dotsPerMeterX() const
물리적 1미터에 가로로 들어맞는 픽셀 수를 반환합니다. 이 수치는 dotsPerMeterY() 함수와 함께 이미지의 의도된 배율과 종횡비를 정의합니다.
setDotsPerMeterX() 및 Image Information도 참조하십시오 .
int QImage::dotsPerMeterY() const
물리적 1미터에 수직으로 들어가는 픽셀 수를 반환합니다. 이 수치는 dotsPerMeterX() 함수와 함께 이미지의 의도된 축척과 종횡비를 정의합니다.
setDotsPerMeterY() 및 Image Information도 참조하십시오 .
void QImage::fill(uint pixelValue)
지정된 값 pixelValue 로 이미지 전체를 채웁니다.
이 이미지의 깊이가 1인 경우, 최하위 비트만 사용됩니다. fill(0), fill(2) 등을 지정하면 이미지가 0으로 채워집니다. fill(1), fill(3) 등을 지정하면 이미지가 1로 채워집니다. 깊이가 8인 경우 가장 낮은 8비트가 사용되며, 깊이가 16인 경우 가장 낮은 16비트가 사용됩니다.
이미지 깊이가 32비트보다 크면 결과는 정의되지 않습니다.
참고: 이에 상응하는 값 가져오기 함수는없지만 , 인덱스 형식에서는 ` QImage::pixelIndex()`가, RGB32, ARGB32 및 ARGB32PM 형식에서는 ` QImage::pixel()`가 동일한 값을 반환합니다.
depth() 및 Image Transformations도 참조하십시오 .
void QImage::fill(Qt::GlobalColor color)
지정된 color(표준 전역 색상으로 정의됨)로 이미지를 채웁니다.
이 함수는 오버로드된 함수입니다.
void QImage::fill(const QColor &color)
지정된 ‘ color ’ 값으로 이미지 전체를 채웁니다.
이미지의 깊이가 1인 경우, ` color `가 ` Qt::color1`와 같으면 이미지가 1로 채워지고, 그렇지 않으면 0으로 채워집니다.
이미지의 깊이가 8인 경우, color 가 존재하면 색상 테이블에서 에 해당하는 인덱스로 이미지가 채워지고, 그렇지 않으면 0으로 채워집니다.
이 함수는 오버로드된 함수입니다.
[since 6.9] void QImage::flip(Qt::Orientations orient = Qt::Vertical)
orient 에 따라 이미지를 수평 및/또는 수직 방향으로 뒤집거나 대칭 처리합니다.
이 함수는 Qt 6.9에서 도입되었습니다.
flipped(Qt::Orientations) 및 Image Transformations도 참조하십시오 .
[since 6.9] QImage QImage::flipped(Qt::Orientations orient = Qt::Vertical) &&
[since 6.9] QImage QImage::flipped(Qt::Orientations orient = Qt::Vertical) const &
orient 에 따라 이미지를 수평 및/또는 수직 방향으로 반전하거나 거울처럼 반사된 버전을 반환합니다.
원본 이미지는 변경되지 않는다는 점에 유의하십시오.
이 함수들은 Qt 6.9에서 도입되었습니다.
flip(Qt::Orientations) 및 Image Transformations도 참조하십시오 .
QImage::Format QImage::format() const
이미지의 형식을 반환합니다.
Image Formats도 참조하십시오 .
[static, since 6.2] QImage QImage::fromData(QByteArrayView data, const char *format = nullptr)
주어진 QByteArrayView data 를 기반으로 이미지를 생성합니다. 로더는 지정된 format 를 사용하여 이미지를 읽으려고 시도합니다. format 가 지정되지 않은 경우(기본값), 로더는 데이터 내에서 헤더를 탐색하여 파일 형식을 추측합니다.
format 가 지정된 경우, 해당 값은 QImageReader::supportedImageFormats() 함수가 반환하는 값 중 하나여야 합니다.
이미지 로딩에 실패하면 반환되는 이미지는 null 이미지가 됩니다.
이 함수는 Qt 6.2에서 도입되었습니다.
load(), save() 및 Reading and Writing Image Files도 참조하십시오 .
[static] QImage QImage::fromData(const QByteArray &data, const char *format = nullptr)
주어진 QByteArray data 를 사용하여 QImage 를 생성합니다.
이 함수는 오버로드된 함수입니다.
[static] QImage QImage::fromData(const uchar *data, int size, const char *format = nullptr)
주어진 바이너리 데이터 data 의 처음 size 바이트를 사용하여 QImage 객체를 생성합니다.
이 함수는 오버로드된 함수입니다.
[static, since 6.0] QImage QImage::fromHBITMAP(HBITMAP hbitmap)
주어진 ` hbitmap`와 동등한 ` QImage `를 반환합니다.
HBITMAP은 알파 채널에 대한 정보를 저장하지 않습니다.
일반적인 경우, 알파 채널은 무시되고 완전히 불투명한 이미지가 생성됩니다(일반적으로 QImage::Format_RGB32 형식).
그러나 응용 프로그램 아이콘이나 시스템 트레이 아이콘과 같이 알파 채널이 사용되는 경우도 있습니다. 이 경우, 반환된 이미지에 대해 reinterpretAsFormat(QImage::Format_ARGB32) 를 호출하여 형식이 올바른지 확인해야 합니다.
이 함수는 Qt 6.0에서 도입되었습니다.
toHBITMAP() 및 reinterpretAsFormat()도 참조하십시오 .
[static, since 6.0] QImage QImage::fromHICON(HICON icon)
주어진 ` icon`과 동등한 ` QImage `을 반환합니다.
이 함수는 Qt 6.0에서 도입되었습니다.
toHICON()도 참조하십시오 .
bool QImage::hasAlphaChannel() const
이미지의 형식이 알파 채널을 지원하는 경우 ` true `를 반환하고, 그렇지 않은 경우 ` false`를 반환합니다.
Image Information도 참조하십시오 .
int QImage::height() const
이미지의 높이를 반환합니다.
Image Information도 참조하십시오 .
void QImage::invertPixels(QImage::InvertMode mode = InvertRgb)
이미지의 모든 픽셀 값을 반전합니다.
지정된 반전 연산 mode 은 이미지의 비트 심도가 32일 때만 의미가 있습니다. 기본 반전 연산 mode 은 InvertRgb 이며, 이 경우 알파 채널은 변경되지 않습니다. mode 가 InvertRgba 인 경우, 알파 비트도 반전됩니다.
8비트 이미지를 반전한다는 것은 색상 인덱스 i를 사용하는 모든 픽셀을 색상 인덱스 255에서 i를 뺀 값을 사용하는 픽셀로 대체하는 것을 의미합니다. 1비트 이미지의 경우에도 마찬가지입니다. 색상 테이블은 변경되지 않는다는 점에 유의하십시오.
이미지에 사전 곱셈된 알파 채널이 있는 경우, 이미지는 먼저 반전 처리를 위해 사전 곱셈되지 않은 이미지 형식으로 변환된 후 다시 원래 형식으로 변환됩니다.
Image Transformations도 참조하십시오 .
bool QImage::isGrayscale() const
32비트 이미지의 경우, 이 함수는 ` allGray()`와 동일합니다.
색상 인덱스 이미지의 경우, 이 함수는 색상 테이블의 모든 인덱스에 대해 color(i)가 QRgb(i, i, i)일 때 true 를 반환하고, 그렇지 않은 경우 false 를 반환합니다.
allGray() 및 Image Formats도 참조하십시오 .
bool QImage::isNull() const
이미지가 null인 경우 ` true `를 반환하고, 그렇지 않은 경우 ` false`를 반환합니다.
null 이미지는 모든 매개변수가 0으로 설정되어 있으며 할당된 데이터가 없습니다.
bool QImage::load(const QString &fileName, const char *format = nullptr)
지정된 fileName 를 가진 파일에서 이미지를 불러옵니다. 이미지가 성공적으로 불러오면 true 를 반환하고, 그렇지 않으면 이미지를 무효화하고 false 를 반환합니다.
로더는 지정된 이미지 형식( format, 예: PNG 또는 JPG)을 사용하여 이미지를 읽으려고 시도합니다. format 가 지정되지 않은 경우(기본값), 파일의 확장자와 헤더를 기반으로 형식이 자동으로 감지됩니다. 자세한 내용은 QImageReader::setAutoDetectImageFormat()을 참조하십시오.
파일 이름은 디스크에 실제로 존재하는 파일을 가리키거나, 애플리케이션에 내장된 리소스 중 하나를 가리킬 수 있습니다. 애플리케이션 실행 파일에 이미지 및 기타 리소스 파일을 내장하는 방법에 대한 자세한 내용은 리소스 시스템 개요를 참조하십시오.
Reading and Writing Image Files도 참조하십시오 .
bool QImage::load(QIODevice *device, const char *format)
이 함수는 지정된 device 에서 QImage 를 읽어옵니다. 예를 들어, 이 함수를 사용하여 이미지를 QByteArray 로 직접 불러올 수 있습니다.
이 함수는 오버로드된 함수입니다.
[since 6.2] bool QImage::loadFromData(QByteArrayView data, const char *format = nullptr)
지정된 QByteArrayView data 에서 이미지를 불러옵니다. 이미지가 성공적으로 불러오면 true 를 반환하고, 그렇지 않으면 이미지를 무효화하고 false 를 반환합니다.
로더는 지정된 format(예: PNG 또는 JPG)를 사용하여 이미지를 읽으려고 시도합니다. format 가 지정되지 않은 경우(기본값), 로더는 파일의 헤더를 분석하여 파일 형식을 추측합니다.
이 함수는 Qt 6.2에서 도입되었습니다.
Reading and Writing Image Files도 참조하십시오 .
bool QImage::loadFromData(const QByteArray &data, const char *format = nullptr)
지정된 QByteArray data 에서 이미지를 불러옵니다.
이 함수는 오버로드된 함수입니다.
bool QImage::loadFromData(const uchar *data, int len, const char *format = nullptr)
지정된 바이너리 파일 data 의 처음 len 바이트에서 이미지를 읽어옵니다.
이 함수는 오버로드된 함수입니다.
[since 6.0, until 6.13] void QImage::mirror(bool horizontal = false, bool vertical = true)
이 함수는 버전 6.13에서 사용 중단될 예정입니다.
대신 flip(Qt::Orientations)을 사용하십시오.
horizontal 및 vertical 가 true 또는 false로 설정되었는지에 따라 이미지를 수평 및/또는 수직 방향으로 반전합니다.
이 함수는 Qt 6.0에서 도입되었습니다.
mirrored() 및 Image Transformations도 참조하십시오 .
[until 6.13] QImage QImage::mirrored(bool horizontal = false, bool vertical = true) &&
[until 6.13] QImage QImage::mirrored(bool horizontal = false, bool vertical = true) const &
이 함수는 버전 6.13에서 사용 중단될 예정입니다.
대신 flipped(Qt::Orientations)를 사용하십시오.
horizontal 및 vertical 가 true 또는 false로 설정된 여부에 따라 이미지를 수평 및/또는 수직 방향으로 반전시킨 이미지를 반환합니다.
원본 이미지는 변경되지 않는다는 점에 유의하십시오.
mirror() 및 Image Transformations도 참조하십시오 .
QPoint QImage::offset() const
다른 이미지에 상대적인 위치를 지정할 때, 해당 이미지를 얼마나 오프셋할지를 나타내는 픽셀 수를 반환합니다.
setOffset() 및 Image Information도 참조하십시오 .
QRgb QImage::pixel(const QPoint &position) const
지정된 position 위치에 있는 픽셀의 색상을 반환합니다.
position 가 유효하지 않은 경우, 결과는 정의되지 않습니다.
경고: 이 함수는 대량의 픽셀을 조작하는 데 사용할 경우 계산 비용이 큽니다. 많은 픽셀을 읽어야 할 때는 constBits() 또는 constScanLine()를 사용하십시오.
setPixel(), valid(), constBits(), constScanLine() 및 Pixel Manipulation도 참조하십시오 .
QRgb QImage::pixel(int x, int y) const
좌표 (x, y)에 있는 픽셀의 색상을 반환합니다.
이 함수는 오버로드된 함수입니다.
QColor QImage::pixelColor(const QPoint &position) const
지정된 position 위치에 있는 픽셀의 색상을 QColor 형식으로 반환합니다.
position 가 유효하지 않은 경우, 유효하지 않은 QColor 가 반환됩니다.
경고: 이 함수는 대량의 픽셀을 조작하는 데 사용할 경우 처리 비용이 높습니다. 많은 픽셀을 읽어야 할 때는 constBits() 또는 constScanLine()을 사용하십시오.
참조: setPixelColor(), setPixel(), valid(), constBits(), constScanLine(), Pixel Manipulation.
QColor QImage::pixelColor(int x, int y) const
좌표 (x, y)에 있는 픽셀의 색상을 ` QColor` 형식으로 반환합니다.
이 함수는 오버로드된 함수입니다.
[noexcept] QPixelFormat QImage::pixelFormat() const
QImage::Format 를 다음 형식으로 반환합니다. QPixelFormat
int QImage::pixelIndex(const QPoint &position) const
지정된 ` position`의 픽셀 인덱스를 반환합니다.
position 가 유효하지 않거나, 이미지가 팔레트 이미지(depth() > 8)가 아닌 경우, 결과는 정의되지 않습니다.
valid(), depth() 및 Pixel Manipulation도 참조하십시오 .
int QImage::pixelIndex(int x, int y) const
(x, y) 위치의 픽셀 인덱스를 반환합니다.
이 함수는 오버로드된 함수입니다.
QRect QImage::rect() const
이미지를 둘러싸는 사각형(0, 0, width(), height())을 반환합니다.
Image Information도 참조하십시오 .
bool QImage::reinterpretAsFormat(QImage::Format format)
데이터를 변경하지 않고 이미지의 형식을 format 로 변경합니다. 동일한 비트 심도의 형식 간에만 작동합니다.
성공 시 true 를 반환합니다.
이 함수는 데이터가 불투명 전용인 것으로 알려진 경우 알파 채널이 있는 이미지를 해당 불투명 형식으로 변경하거나, 새로운 데이터로 덮어쓰기 전에 주어진 이미지 버퍼의 형식을 변경하는 데 사용할 수 있습니다.
경고: 이 함수는 이미지 데이터가 새 형식에서 유효한지 확인하지 않으며, 비트 심도가 호환되는 경우 여전히 ` true `를 반환합니다. 유효하지 않은 데이터가 포함된 이미지에 대한 연산 결과는 정의되지 않습니다.
경고: 이미지가 분리되지 않은상태라면 , 이 함수를 호출하면 데이터가 복사됩니다.
hasAlphaChannel() 및 convertToFormat()도 참조하십시오 .
[since 6.0] void QImage::rgbSwap()
모든 픽셀의 적색 및 청색 성분의 값을 서로 바꾸어, RGB 이미지를 사실상 BGR 이미지로 변환합니다.
이 함수는 Qt 6.0에서 도입되었습니다.
rgbSwapped() 및 Image Transformations도 참조하십시오 .
모든 픽셀의 빨간색 및 파란색 구성 요소 값이 서로 바뀐 ` QImage ` 객체를 반환하여, 사실상 RGB 이미지를 BGR 이미지로 변환합니다.
원본 ` QImage `는 변경되지 않습니다.
rgbSwap() 및 Image Transformations도 참조하십시오 .
bool QImage::save(const QString &fileName, const char *format = nullptr, int quality = -1) const
지정된 ` fileName`을 사용하여, 지정된 이미지 파일 ` format `과 ` quality ` 계수를 적용해 이미지를 파일로 저장합니다. ` format `이 ` nullptr`인 경우, ` QImage `은 ` fileName`의 확장자를 확인하여 파일 형식을 추측하려고 시도합니다.
quality 요소는 0에서 100 사이의 값 또는 -1이어야 합니다. 압축된 파일의 크기를 작게 하려면 0을, 압축되지 않은 파일의 크기를 크게 하려면 100을, 기본 설정을 사용하려면 -1(기본값)을 지정하십시오.
이미지가 성공적으로 저장된 경우 true 를 반환하고, 그렇지 않은 경우 false 를 반환합니다.
Reading and Writing Image Files도 참조하십시오 .
bool QImage::save(QIODevice *device, const char *format = nullptr, int quality = -1) const
이 함수는 QImage 를 지정된 device 에 기록합니다.
예를 들어, 이 함수를 사용하면 이미지를 QByteArray 에 직접 저장할 수 있습니다:
QImage image;
QByteArray ba;
QBuffer buffer(&ba);
buffer.open(QIODevice::WriteOnly);
image.save(&buffer, "PNG"); // writes image into ba in PNG format이 함수는 오버로드된 함수입니다.
QImage QImage::scaled(const QSize &size, Qt::AspectRatioMode aspectRatioMode = Qt::IgnoreAspectRatio, Qt::TransformationMode transformMode = Qt::FastTransformation) const
지정된 size 에 의해 정의된 직사각형 크기로, 지정된 aspectRatioMode 및 transformMode 에 따라 크기가 조정된 이미지의 복사본을 반환합니다.

- aspectRatioMode 가 Qt::IgnoreAspectRatio 인 경우, 이미지는 size 로 크기가 조정됩니다.
- aspectRatioMode 가 Qt::KeepAspectRatio 인 경우, 이미지는 종횡비를 유지한 채 size 내에서 가능한 한 큰 직사각형 크기로 조정됩니다.
- aspectRatioMode 가 Qt::KeepAspectRatioByExpanding 인 경우, 이미지는 종횡비를 유지하면서 size 바깥쪽에 가능한 한 작은 직사각형으로 크기가 조정됩니다.
지정된 size 가 비어 있는 경우, 이 함수는 null 이미지를 반환합니다.
isNull() 및 Image Transformations도 참조하십시오 .
QImage QImage::scaled(int width, int height, Qt::AspectRatioMode aspectRatioMode = Qt::IgnoreAspectRatio, Qt::TransformationMode transformMode = Qt::FastTransformation) const
지정된 width 및 height 에 따라, 지정된 aspectRatioMode 및 transformMode 에 맞춰 직사각형으로 크기가 조정된 이미지의 복사본을 반환합니다.
width 또는 height 중 하나라도 0이거나 음수인 경우, 이 함수는 null 이미지를 반환합니다.
이 함수는 오버로드된 함수입니다.
QImage QImage::scaledToHeight(int height, Qt::TransformationMode mode = Qt::FastTransformation) const
이미지의 크기를 조정하여 복사본을 반환합니다. 반환된 이미지는 지정된 변환 mode 을 사용하여 주어진 height 크기로 조정됩니다.
이 함수는 이미지의 종횡비가 유지되도록 이미지의 너비를 자동으로 계산합니다.
지정된 height 가 0이거나 음수인 경우, 빈 이미지가 반환됩니다.
Image Transformations도 참조하십시오 .
QImage QImage::scaledToWidth(int width, Qt::TransformationMode mode = Qt::FastTransformation) const
이미지의 크기를 조정한 사본을 반환합니다. 반환된 이미지는 지정된 변환( mode)을 사용하여 주어진 종횡비( width )에 맞게 크기가 조정됩니다.
이 함수는 이미지의 종횡비가 유지되도록 이미지의 높이를 자동으로 계산합니다.
지정된 width 가 0이거나 음수인 경우, 빈 이미지가 반환됩니다.
Image Transformations도 참조하십시오 .
uchar *QImage::scanLine(int i)
인덱스 i 에 해당하는 스캔라인의 픽셀 데이터에 대한 포인터를 반환합니다. 첫 번째 스캔라인은 인덱스 0에 있습니다.
스캔라인 데이터는 최소 32비트 단위로 정렬됩니다. 64비트 형식의 경우 64비트 정수의 기본 정렬 규칙을 따릅니다(대부분의 플랫폼에서는 64비트이지만, 특히 i386에서는 32비트입니다).
예를 들어, 이미지의 각 픽셀에서 녹색 성분을 제거하려면:
for (int y = 0; y < image.height(); ++y) {
QRgb *line = reinterpret_cast<QRgb*>(image.scanLine(y));
for (int x = 0; x < image.width(); ++x) {
QRgb &rgb = line[x];
rgb = qRgba(qRed(rgb), qGreen(0), qBlue(rgb), qAlpha(rgb));
}
}경고: 32-bpp 이미지 데이터에 접근하는경우 , 반환된 포인터를 QRgb* 로 형변환하고(QRgb 의 크기는 32비트임), 이를 사용하여 픽셀 값을 읽거나 쓰십시오. uchar* 포인터를 직접 사용할 수는 없습니다. 픽셀 형식은 기본 플랫폼의 바이트 순서에 따라 달라지기 때문입니다. 픽셀에 접근하려면 qRed(), qGreen(), qBlue(), qAlpha()를 사용하십시오.
bytesPerLine(), bits(), Pixel Manipulation 및 constScanLine()도 참조하십시오 .
const uchar *QImage::scanLine(int i) const
이 함수는 과부하된 함수입니다.
void QImage::setAlphaChannel(const QImage &alphaChannel)
이 이미지의 알파 채널을 지정된 ` alphaChannel`로 설정합니다.
alphaChannel 가 8비트 알파 이미지인 경우, 알파 값이 직접 사용됩니다. 그렇지 않은 경우, alphaChannel 는 8비트 그레이스케일로 변환되며 픽셀 값의 명도 정보가 사용됩니다.
이미지에 이미 알파 채널이 있는 경우, 기존 알파 채널에 새로운 알파 채널이 곱해집니다. 이미지에 알파 채널이 없는 경우, 알파 채널이 있는 형식으로 변환됩니다.
이 작업은 alphaChannel 를 알파 이미지로 변환하여 QPainter::CompositionMode_DestinationIn 를 사용하여 이 이미지에 덧칠하는 것과 유사합니다.
hasAlphaChannel(), Image Transformations 및 Image Formats도 참조하십시오 .
void QImage::setColor(int index, QRgb colorValue)
색상 테이블의 지정된 위치 index 에 있는 색상을, 지정된 값 colorValue 으로 설정합니다. 색상 값은 ARGB 4원색 벡터입니다.
index 가 현재 색상 테이블의 크기를 초과하는 경우, setColorCount()를 사용하여 색상 테이블이 확장됩니다.
color(), colorCount(), setColorTable() 및 Pixel Manipulation도 참조하십시오 .
void QImage::setColorCount(int colorCount)
색상 테이블의 크기를 조정하여 colorCount 항목을 포함하도록 합니다.
색상 테이블이 확장될 경우, 추가된 모든 색상은 투명(즉, qRgba(0, 0, 0, 0))으로 설정됩니다.
이미지를 사용할 때, 색상 테이블은 이미지에 존재하는 모든 픽셀/인덱스 값에 대한 항목을 포함할 수 있을 만큼 충분히 커야 하며, 그렇지 않으면 결과가 정의되지 않습니다.
colorCount(), colorTable(), setColor(), Image Transformations도 참조하십시오 .
void QImage::setColorSpace(const QColorSpace &colorSpace)
이미지 데이터에 대한 변환을 수행하지 않고 이미지 색 공간을 ‘ colorSpace ’로 설정합니다.
colorSpace()도 참조하십시오 .
void QImage::setColorTable(const QList<QRgb> &colors)
색상 인덱스를 QRgb 값으로 변환하는 데 사용되는 색상 테이블을 지정된 colors 로 설정합니다.
이미지를 사용할 때, 색상 테이블은 이미지에 존재하는 모든 픽셀/인덱스 값에 대한 항목을 포함할 수 있을 만큼 충분히 커야 하며, 그렇지 않으면 결과가 정의되지 않습니다.
colorTable(), setColor() 및 Image Transformations도 참조하십시오 .
void QImage::setDevicePixelRatio(qreal scaleFactor)
이미지의 장치 픽셀 비율을 설정합니다. 이는 이미지 픽셀과 장치 독립 픽셀 간의 비율을 의미합니다.
기본값 scaleFactor 은 1.0입니다. 이 값을 다른 값으로 설정하면 두 가지 효과가 나타납니다:
이미지에서 열린 QPainter는 크기가 조정됩니다. 예를 들어, 비율이 2.0인 상태에서 200x200 이미지에 그리기를 수행하면, 실제(장치 독립적) 그리기 범위는 100x100이 됩니다.
Qt에서 이미지 크기를 기반으로 레이아웃 기하 구조를 계산하는 코드 경로는 이 비율을 고려합니다: QSize layoutSize = image.size() / image.devicePixelRatio() 이로 인해 이미지는 큰 이미지보다는 고해상도(high-DPI) 이미지로 표시됩니다( Drawing High Resolution Versions of Pixmaps and Images 참조).
devicePixelRatio() 및 deviceIndependentSize()도 참조하십시오 .
void QImage::setDotsPerMeterX(int x)
물리적 1미터에 가로로 들어가는 픽셀 수를 x 로 설정합니다.
dotsPerMeterY()와 함께 이 값은 이미지의 의도된 배율과 종횡비를 정의하며, QPainter 가 이미지에 그래픽을 그릴 때 적용할 배율을 결정합니다. 다른 페인트 장치에서 이미지가 렌더링될 때 이미지의 배율이나 종횡비는 변경되지 않습니다.
dotsPerMeterX() 및 Image Information도 참조하십시오 .
void QImage::setDotsPerMeterY(int y)
물리적 1미터에 수직으로 들어가는 픽셀 수를 y 로 설정합니다.
dotsPerMeterX() 함수와 함께 이 값은 이미지의 의도된 배율과 종횡비를 정의하며, QPainter 가 이미지에 그래픽을 그릴 때 적용할 배율을 결정합니다. 이 설정은 다른 페인트 장치에서 이미지가 렌더링될 때 이미지의 배율이나 종횡비를 변경하지 않습니다.
dotsPerMeterY() 및 Image Information도 참조하십시오 .
void QImage::setOffset(const QPoint &offset)
다른 이미지와 상대적으로 위치를 지정할 때 이미지를 오프셋할 픽셀 수를 ` offset`로 설정합니다.
offset() 및 Image Information도 참조하십시오 .
void QImage::setPixel(const QPoint &position, uint index_or_rgb)
지정된 position 의 픽셀 인덱스 또는 색상을 index_or_rgb 로 설정합니다.
이미지 형식이 단색 또는 팔레트인 경우, 지정된 ` index_or_rgb ` 값은 이미지 색상 테이블의 인덱스여야 하며, 그렇지 않은 경우 해당 매개변수는 ` QRgb ` 값이어야 합니다.
position 가 이미지 내에서 유효한 좌표 쌍이 아니거나, 단색 및 팔레트 이미지의 경우 index_or_rgb >= colorCount()인 경우, 결과는 정의되지 않습니다.
경고: 이 함수는 내부에서 호출되는 detach() 함수로 인해 계산 비용이 높습니다. 성능이 중요한 경우, scanLine() 또는 bits()를 사용하여 픽셀 데이터에 직접 접근하는 것을 권장합니다.
pixel() 및 Pixel Manipulation도 참조하십시오 .
void QImage::setPixel(int x, int y, uint index_or_rgb)
(x, y) 위치의 픽셀 인덱스 또는 색상을 index_or_rgb 로 설정합니다.
이 함수는 오버로드된 함수입니다.
void QImage::setPixelColor(const QPoint &position, const QColor &color)
지정된 좌표 ( position )의 색상을 ( color)로 설정합니다.
position 가 이미지 내에서 유효한 좌표 쌍이 아니거나, 이미지의 형식이 단색 또는 팔레트 이미지인 경우, 결과는 정의되지 않습니다.
경고: 이 함수는 내부에서 호출되는 detach() 함수로 인해 처리 비용이 높습니다. 성능이 중요한 경우, scanLine() 또는 bits()를 사용하여 픽셀 데이터에 직접 접근하는 것이 좋습니다.
pixelColor(), pixel(), bits(), scanLine() 및 Pixel Manipulation도 참조하십시오 .
void QImage::setPixelColor(int x, int y, const QColor &color)
(x, y) 위치의 픽셀 색상을 color 로 설정합니다.
이 함수는 오버로드된 함수입니다.
void QImage::setText(const QString &key, const QString &text)
이미지 텍스트를 지정된 text 로 설정하고, 이를 지정된 key 와 연결합니다.
단일 텍스트 블록(예: "주석"이나 단순한 설명)만 저장하려는 경우, 빈 키를 전달하거나 "Description"과 같은 일반적인 키를 사용할 수 있습니다.
save() 또는 QImageWriter::write()를 호출하면 이미지 텍스트가 이미지 데이터에 삽입됩니다.
모든 이미지 형식이 텍스트 삽입을 지원하는 것은 아닙니다. QImageWriter::supportsOption() 함수를 사용하여 특정 이미지나 형식이 텍스트 삽입을 지원하는지 확인할 수 있습니다. 다음은 그 예시입니다:
QImageWriter writer;
writer.setFormat("png");
if (writer.supportsOption(QImageIOHandler::Description))
qDebug() << "Png supports embedded text";QImageWriter::supportedImageFormats()를 사용하면 어떤 이미지 형식을 사용할 수 있는지 확인할 수 있습니다.
QSize QImage::size() const
이미지의 크기, 즉 ` width()` 및 ` height()` 값을 반환합니다.
Image Information 및 deviceIndependentSize()도 참조하십시오 .
qsizetype QImage::sizeInBytes() const
이미지 데이터의 크기를 바이트 단위로 반환합니다.
bytesPerLine(), bits() 및 Image Information도 참조하십시오 .
[noexcept] void QImage::swap(QImage &other)
이 이미지를 other 로 교체합니다. 이 작업은 매우 빠르며 절대 실패하지 않습니다.
QString QImage::text(const QString &key = QString()) const
지정된 ` key`와 연관된 이미지 텍스트를 반환합니다. 지정된 ` key `가 빈 문자열인 경우, 전체 이미지 텍스트가 반환되며, 각 키-텍스트 쌍은 줄바꿈으로 구분됩니다.
setText() 및 textKeys()도 참조하십시오 .
QStringList QImage::textKeys() const
이 이미지의 텍스트 키를 반환합니다.
text() 함수와 함께 이 키들을 사용하여 특정 키에 해당하는 이미지 텍스트를 나열할 수 있습니다.
text()도 참조하십시오 .
CGImageRef QImage::toCGImage() const
이 QImage 와 동등한 CGImage 를 생성하고, CGImageRef 핸들을 반환합니다.
반환된 CGImageRef는 QImage 의 암시적 공유에 참여하며, QImage 데이터에 대한 참조를 보유합니다. CGImage는 불변이며, QImage 을 절대로 분리하지 않습니다. QImage 에 쓰기를 수행하면 평소와 같이 분리됩니다.
이 함수는 처리 속도가 빠르며, 이미지 데이터를 복사하거나 변환하지 않습니다.
이미지 형식을 변환할 수 없는 경우 null CGImageRef가 반환됩니다. 이 함수를 사용하는 사용자는 먼저 QImage 를 지원되는 형식(예: Format_ARGB32_Premultiplied)으로 변환할 수 있습니다.
이미지에 색 공간이 설정되어 있지 않은 경우, 결과 CGImageRef의 색 공간은 sRGB 색 공간으로 설정됩니다.
[since 6.0] HBITMAP QImage::toHBITMAP() const
QImage 와 동등한 HBITMAP 객체를 생성합니다.
HBITMAP 핸들을 반환합니다.
사용 후 HBITMAP 데이터를 해제하는 것은 호출자의 책임입니다.
BitBlt() 과 같은 표준 GDI 호출에서 사용하려면 이미지의 형식이 QImage::Format_RGB32 이어야 합니다.
AlphaBlend() GDI 함수에 대해 결과 HBITMAP을 사용할 경우, 이미지의 형식은 QImage::Format_ARGB32_Premultiplied 이어야 합니다( convertToFormat()를 사용하십시오).
생성된 HBITMAP을 애플리케이션 아이콘이나 시스템 트레이 아이콘으로 사용할 경우, 이미지의 형식은 QImage::Format_ARGB32 이어야 합니다.
이 함수는 Qt 6.0에서 도입되었습니다.
fromHBITMAP() 및 convertToFormat()도 참조하십시오 .
[since 6.0] HICON QImage::toHICON(const QImage &mask = {}) const
QPixmap 의 HICON 형식을 생성하며, 마스크 mask 를 적용합니다.
mask 가 null이 아닌 경우, QImage::Format_Mono 형식을 따라야 합니다. HICON 핸들을 반환합니다.
사용 후 HICON 데이터를 해제하는 것은 호출자의 책임입니다.
이 함수는 Qt 6.0에서 도입되었습니다.
fromHICON()도 참조하십시오 .
[static noexcept] QImage::Format QImage::toImageFormat(QPixelFormat format)
format 를 다음으로 변환합니다. QImage::Format
[static noexcept] QPixelFormat QImage::toPixelFormat(QImage::Format format)
format 을 다음으로 변환합니다. QPixelFormat
QImage QImage::transformed(const QTransform &matrix, Qt::TransformationMode mode = Qt::FastTransformation) const
지정된 변환 matrix 과 변환 mode 을 사용하여 변환된 이미지의 복사본을 반환합니다.
반환된 이미지는 일반적으로 원본 이미지와 동일한 {이미지 형식}{format}을 가집니다. 그러나 복잡한 변환의 경우, 원본 이미지의 변환된 픽셀이 모든 픽셀을 덮지 못하는 이미지가 생성될 수 있습니다. 이러한 경우, 해당 배경 픽셀에는 투명한 색상 값이 할당되며, 원본 이미지에 알파 채널이 없더라도 변환된 이미지에는 알파 채널이 포함된 형식이 지정됩니다.
matrix 변환은 원치 않는 평행 이동을 보정하기 위해 내부적으로 조정됩니다. 즉, 생성된 이미지는 원본 이미지의 모든 변환된 점을 포함하는 가장 작은 이미지입니다. trueMatrix() 함수를 사용하여 이미지 변환에 사용된 실제 행렬을 가져올 수 있습니다.
다른 오버로드와 달리, 이 함수는 이미지에 원근 변환을 수행하는 데 사용할 수 있습니다.
trueMatrix() 및 Image Transformations도 참조하십시오 .
[static] QTransform QImage::trueMatrix(const QTransform &matrix, int width, int height)
지정된 ` width`, ` height ` 및 ` matrix`을 사용하여 이미지를 변환하는 데 실제로 사용되는 행렬을 반환합니다.
transformed() 함수를 사용하여 이미지를 변환할 때, 원치 않는 평행 이동을 보정하기 위해 변환 행렬이 내부적으로 조정됩니다. 즉, transformed()은 원본 이미지의 모든 변환된 점을 포함하는 가장 작은 이미지를 반환합니다. 이 함수는 원본 이미지의 점을 새로운 이미지로 올바르게 매핑하는 수정된 행렬을 반환합니다.
다른 오버로드와 달리, 이 함수는 이미지에 원근 변환을 수행하는 데 사용할 수 있는 변환 행렬을 생성합니다.
transformed() 및 Image Transformations도 참조하십시오 .
bool QImage::valid(const QPoint &pos) const
pos 가 이미지 내에서 유효한 좌표 쌍인 경우 true 를 반환하고, 그렇지 않은 경우 false 를 반환합니다.
rect() 및 QRect::contains()도 참조하십시오 .
bool QImage::valid(int x, int y) const
QPoint(x, y)가 이미지 내에서 유효한 좌표 쌍인 경우 true 을 반환하고, 그렇지 않은 경우 false 을 반환합니다.
이 함수는 오버로드된 함수입니다.
int QImage::width() const
이미지의 너비를 반환합니다.
Image Information도 참조하십시오 .
QImage::operator QVariant() const
이미지를 ` QVariant` 형식으로 반환합니다.
bool QImage::operator!=(const QImage &image) const
이 이미지와 주어진 image 의 내용이 서로 다르면 true 를 반환하고, 그렇지 않으면 false 를 반환합니다.
너비 차이 등 명백한 차이가 없는 한 비교 작업이 느릴 수 있으나, 명백한 차이가 있는 경우에는 함수가 빠르게 반환됩니다.
operator=()도 참조하십시오 .
[noexcept] QImage &QImage::operator=(QImage &&other)
other 를 이 QImage 인스턴스에 할당합니다.
QImage &QImage::operator=(const QImage &image)
지정된 ` image `의 얕은 복사본을 이 이미지에 할당하고, 이 이미지에 대한 참조를 반환합니다.
얕은 복사에 대한 자세한 내용은 ‘암시적 데이터 공유(Implicit Data Sharing )’ 문서를 참조하십시오.
bool QImage::operator==(const QImage &image) const
이 이미지와 지정된 image 의 내용이 동일하면 ` true `를 반환하고, 그렇지 않으면 ` false`를 반환합니다.
명백한 차이(예: 크기나 형식이 다른 경우)가 없는 한 비교 작업은 느릴 수 있으며, 이러한 차이가 있는 경우에는 함수가 빠르게 반환됩니다.
operator=()도 참조하십시오 .
관련 비회원 함수
QImageCleanupFunction
기본적인 이미지 메모리 관리를 구현하는 데 사용할 수 있는, 다음과 같은 시그니처를 가진 함수:
void myImageCleanupHandler(void *info);QDataStream &operator<<(QDataStream &stream, const QImage &image)
지정된 ` image `를 지정된 ` stream `에 PNG 이미지 형식으로 쓰거나, 스트림의 버전이 1인 경우 BMP 이미지 형식으로 씁니다. 스트림을 파일에 쓰더라도 유효한 이미지 파일이 생성되지 않는다는 점에 유의하십시오.
QImage::save() 및 Qt 데이터 유형 직렬화항목도 참조하십시오 .
QDataStream &operator>>(QDataStream &stream, QImage &image)
지정된 stream 에서 이미지를 읽어와, 지정된 image 에 저장합니다.
QImage::load() 및 Qt 데이터 유형 직렬화항목도 참조하십시오 .
© 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.

