QPixmap Class
QPixmap 클래스는 페인트 장치로 사용할 수 있는 오프스크린 이미지 표현체입니다. 더 보기...
| 헤더: | #include <QPixmap> |
| CMake: | find_package(Qt6 REQUIRED COMPONENTS Gui) target_link_libraries(mytarget PRIVATE Qt6::Gui) |
| qmake: | QT += gui |
| 상속: | QPaintDevice |
| 상속받는 클래스: |
- 상속받은 멤버를 포함한 모든 멤버 목록
- QPixmap은 페인팅 클래스 및 암시적 공유 클래스의 일부입니다.
공개 함수
| QPixmap() | |
| QPixmap(const char *const[] xpm) | |
| QPixmap(int width, int height) | |
| QPixmap(const QString &fileName, const char *format = nullptr, Qt::ImageConversionFlags flags = Qt::AutoColor) | |
| QPixmap(const QSize &size) | |
| QPixmap(const QPixmap &pixmap) | |
| QPixmap(QPixmap &&other) | |
| virtual | ~QPixmap() |
| qint64 | cacheKey() const |
| bool | convertFromImage(const QImage &image, Qt::ImageConversionFlags flags = Qt::AutoColor) |
| QPixmap | copy(const QRect &rectangle = QRect()) const |
| QPixmap | copy(int x, int y, int width, int height) const |
| QBitmap | createHeuristicMask(bool clipTight = true) const |
| QBitmap | createMaskFromColor(const QColor &maskColor, Qt::MaskMode mode = Qt::MaskInColor) const |
| int | depth() const |
| void | detach() |
(since 6.2) QSizeF | deviceIndependentSize() const |
| qreal | devicePixelRatio() const |
| void | fill(const QColor &color = Qt::white) |
| bool | hasAlpha() const |
| bool | hasAlphaChannel() const |
| int | height() const |
| bool | isNull() const |
| bool | isQBitmap() const |
| bool | load(const QString &fileName, const char *format = nullptr, Qt::ImageConversionFlags flags = Qt::AutoColor) |
| bool | loadFromData(const uchar *data, uint len, const char *format = nullptr, Qt::ImageConversionFlags flags = Qt::AutoColor) |
| bool | loadFromData(const QByteArray &data, const char *format = nullptr, Qt::ImageConversionFlags flags = Qt::AutoColor) |
| QBitmap | mask() const |
| QRect | rect() 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 |
| QPixmap | scaled(const QSize &size, Qt::AspectRatioMode aspectRatioMode = Qt::IgnoreAspectRatio, Qt::TransformationMode transformMode = Qt::FastTransformation) const |
| QPixmap | scaled(int width, int height, Qt::AspectRatioMode aspectRatioMode = Qt::IgnoreAspectRatio, Qt::TransformationMode transformMode = Qt::FastTransformation) const |
| QPixmap | scaledToHeight(int height, Qt::TransformationMode mode = Qt::FastTransformation) const |
| QPixmap | scaledToWidth(int width, Qt::TransformationMode mode = Qt::FastTransformation) const |
| void | scroll(int dx, int dy, const QRect &rect, QRegion *exposed = nullptr) |
| void | scroll(int dx, int dy, int x, int y, int width, int height, QRegion *exposed = nullptr) |
| void | setDevicePixelRatio(qreal scaleFactor) |
| void | setMask(const QBitmap &mask) |
| QSize | size() const |
| void | swap(QPixmap &other) |
| QImage | toImage() const |
| QPixmap | transformed(const QTransform &transform, Qt::TransformationMode mode = Qt::FastTransformation) const |
| int | width() const |
| operator QVariant() const | |
| bool | operator!() const |
| QPixmap & | operator=(QPixmap &&other) |
| QPixmap & | operator=(const QPixmap &pixmap) |
정적 공용 멤버
| int | defaultDepth() |
| QPixmap | fromImage(const QImage &image, Qt::ImageConversionFlags flags = Qt::AutoColor) |
| QPixmap | fromImage(QImage &&image, Qt::ImageConversionFlags flags = Qt::AutoColor) |
| QPixmap | fromImageReader(QImageReader *imageReader, Qt::ImageConversionFlags flags = Qt::AutoColor) |
| QTransform | trueMatrix(const QTransform &matrix, int width, int height) |
관련 비멤버
| QDataStream & | operator<<(QDataStream &stream, const QPixmap &pixmap) |
| QDataStream & | operator>>(QDataStream &stream, QPixmap &pixmap) |
상세 설명
Qt는 이미지 데이터를 처리하기 위해 QImage, QPixmap, QBitmap 및 QPicture 의 네 가지 클래스를 제공합니다. QImage 는 I/O 및 직접 픽셀 액세스 및 조작을 위해 설계 및 최적화된 반면, QPixmap은 화면에 이미지를 표시하기 위해 설계 및 최적화되었습니다. QBitmap 는 QPixmap을 상속하여 깊이를 1로 보장하는 편의 클래스에 불과합니다. isQBitmap() 함수는 QPixmap 객체가 실제로 비트맵인 경우 true 를 반환하고, 그렇지 않은 경우 false 를 반환합니다. 마지막으로, QPicture 클래스는 QPainter 명령을 기록하고 재실행하는 페인트 장치입니다.
QPixmap은 QLabel 또는 QAbstractButton 의 하위 클래스 중 하나(예: QPushButton 및 QToolButton)를 사용하여 화면에 쉽게 표시할 수 있습니다. QLabel 에는 pixmap 속성이 있는 반면, QAbstractButton 에는 icon 속성이 있습니다.
QPixmap 클래스는 암시적 데이터 공유를 사용하므로 QPixmap 객체는 값으로 전달할 수 있습니다. 자세한 내용은 암시적 데이터 공유 문서를 참조하십시오. 또한 QPixmap 객체는 스트리밍할 수도 있습니다.
픽스맵 내의 픽셀 데이터는 내부적이며, 기본이 되는 윈도우 시스템에 의해 관리된다는 점에 유의하십시오. QPixmap은 ` QPaintDevice `의 서브클래스이므로, ` QPainter `를 사용하여 픽스맵 위에 직접 그리기를 수행할 수 있습니다. 픽셀에 접근하려면 ` QPainter ` 함수를 사용하거나 QPixmap을 ` QImage`로 변환해야 합니다. 단, ` fill()` 함수를 사용하면 지정된 색상으로 픽스맵 전체를 초기화할 수 있습니다.
QImage 과 QPixmap 간 변환을 위한 함수들이 있습니다. 일반적으로 QImage 클래스를 사용하여 이미지 파일을 불러오고, 필요에 따라 이미지 데이터를 조작한 후, QImage 객체를 QPixmap으로 변환하여 화면에 표시합니다. 또는, 별도의 조작이 필요하지 않은 경우 이미지 파일을 QPixmap에 직접 불러올 수도 있습니다.
QPixmap은 픽스맵에 대한 다양한 정보를 얻기 위해 사용할 수 있는 일련의 함수들을 제공합니다. 또한, 픽스맵을 변환할 수 있게 해주는 여러 함수들이 있습니다.
이미지 파일 읽기 및 쓰기
QPixmap은 이미지 파일을 읽는 여러 가지 방법을 제공합니다. 파일을 QPixmap 객체를 생성할 때 함께 불러올 수도 있고, 나중에 ` load()` 또는 ` loadFromData()` 함수를 사용하여 불러올 수도 있습니다. 이미지를 불러올 때 파일 이름은 디스크에 있는 실제 파일을 가리키거나 애플리케이션의 내장 리소스 중 하나를 가리킬 수 있습니다. 응용 프로그램의 실행 파일에 이미지 및 기타 리소스 파일을 내장하는 방법에 대한 자세한 내용은 Qt 리소스 시스템 개요를 참조하십시오.
save() 함수를 호출하기만 하면 QPixmap 객체를 저장할 수 있습니다.
지원되는 파일 형식의 전체 목록은 QImageReader::supportedImageFormats() 및 QImageWriter::supportedImageFormats() 함수를 통해 확인할 수 있습니다. 새로운 파일 형식은 플러그인으로 추가할 수 있습니다. 기본적으로 Qt는 다음 형식을 지원합니다:
| 형식 | 설명 | Qt의 지원 여부 |
|---|---|---|
| BMP | Windows 비트맵 | 읽기/쓰기 |
| CUR | Windows 커서 | 읽기/쓰기CURWindows 커서 |
| GIF | 그래픽 교환 형식 | 읽기 |
| ICO | Windows 아이콘 | 읽기/쓰기 |
| JFIF | JPEG 파일 교환 형식 | 읽기/쓰기 |
| JPEG | Joint Photographic Experts Group | 읽기/쓰기 |
| JPG | Joint Photographic Experts Group | 읽기/쓰기 |
| PBM | 휴대용 비트맵 | 읽기/쓰기 |
| PGM | 휴대용 그레이맵 | 읽기/쓰기 |
| PNG | 휴대용 네트워크 그래픽 | 읽기/쓰기 |
| PPM | 휴대용 픽스맵 | 읽기/쓰기 |
| SVG | 확장 가능한 벡터 그래픽 | 읽기 |
| SVGZ | 확장 가능한 벡터 그래픽(압축됨) | 읽기 |
| XBM | X11 비트맵 | 읽기/쓰기 |
| XPM | X11 픽스맵 | 읽기/쓰기 |
다음과 같은 추가 형식이 지원됩니다. Qt Image Formats 모듈이 설치되어 있는 경우 추가 형식이 지원됩니다.
픽스맵 정보
QPixmap은 픽스맵에 대한 다양한 정보를 얻기 위해 사용할 수 있는 함수 모음을 제공합니다:
| 사용 가능한 함수 | |
|---|---|
| 기하 정보 | size(), width() 및 height() 함수는 픽스맵의 크기에 대한 정보를 제공합니다. rect() 함수는 이미지를 둘러싼 직사각형을 반환합니다. |
| 알파 성분 | hasAlphaChannel() 함수는 픽스맵의 형식이 알파 채널을 지원하는 경우 true 을 반환하고, 그렇지 않은 경우 false 을 반환합니다. hasAlpha(), setMask() 및 mask() 함수는 구식 함수이므로 사용하지 말아야 합니다. 이 함수들은 처리 속도가 매우 느릴 수 있습니다.createHeuristicMask() 함수는 이 픽스맵에 대한 1-bpp 휴리스틱 마스크(즉, QBitmap)를 생성하여 반환합니다. 이 함수는 모서리 중 한 곳에서 색상을 선택한 다음, 모든 가장자리부터 시작하여 해당 색상의 픽셀을 제거하는 방식으로 작동합니다. createMaskFromColor() 함수는 주어진 색상을 기반으로 픽스맵에 대한 마스크(즉, QBitmap)를 생성하여 반환합니다. |
| 저수준 정보 | depth() 함수는 픽스맵의 깊이를 반환합니다. defaultDepth() 함수는 기본 깊이, 즉 주어진 화면에서 애플리케이션이 사용하는 깊이를 반환합니다. cacheKey() 함수는 QPixmap 객체의 내용을 고유하게 식별하는 숫자를 반환합니다. |
픽스맵 변환
toImage() 함수를 사용하여 QPixmap 객체를 QImage 로 변환할 수 있습니다. 마찬가지로, fromImage()을 사용하여 QImage 를 QPixmap으로 변환할 수 있습니다. 이 작업이 너무 많은 자원을 소모한다면, 대신 QBitmap::fromImage()를 사용할 수 있습니다.
QPixmap을 HICON으로 변환하거나 HICON을 QPixmap으로 변환하려면 각각 QImage::toHICON() 및 QImage::fromHICON() 함수를 사용할 수 있습니다(앞서 설명한 대로 QPixmap을 QImage 로 변환한 후).
픽스맵 변환
QPixmap은 원본을 변환한 새로운 픽스맵을 생성하는 여러 함수를 지원합니다:
scaled(), scaledToWidth() 및 scaledToHeight() 함수는 픽스맵의 크기 조정된 복사본을 반환하는 반면, copy() 함수는 원본의 단순한 복사본인 QPixmap을 생성합니다.
transformed() 함수는 주어진 변환 행렬과 변환 모드를 사용하여 변환된 픽스맵의 복사본을 반환합니다. 내부적으로, 원치 않는 평행 이동을 보정하기 위해 변환 행렬이 조정됩니다. 즉, transformed()는 원본 픽스맵의 모든 변환된 점을 포함하는 가장 작은 픽스맵을 반환합니다. 정적 함수인 trueMatrix()는 픽스맵 변환에 사용된 실제 행렬을 반환합니다.
QBitmap, QImage, QImageReader 및 QImageWriter도 참조하십시오 .
멤버 함수 문서
QPixmap::QPixmap()
null 픽스맵을 생성합니다.
isNull()도 참조하십시오 .
[explicit] QPixmap::QPixmap(const char *const[] xpm)
주어진 xpm 데이터(유효한 XPM 이미지여야 함)를 사용하여 픽스맵을 생성합니다.
오류는 아무런 메시지 없이 무시됩니다.
비정상적인 선언을 사용하여 XPM 변수의 크기를 약간 줄일 수 있다는 점에 유의하십시오:
static const char * const start_xpm[] = {
"16 15 8 1",
"a c #cec6bd",
// etc.
};추가된 ` const ` 덕분에 전체 정의가 읽기 전용으로 처리되는데, 이는 (예를 들어 코드가 공유 라이브러리에 포함된 경우) 효율성이 약간 더 높으며, 애플리케이션을 ROM에 저장해야 할 때 ROM에 탑재할 수 있게 해줍니다.
QPixmap::QPixmap(int width, int height)
지정된 ` width ` 및 ` height`을 사용하여 픽스맵을 생성합니다. ` width ` 또는 ` height ` 중 하나라도 0인 경우, 빈 픽스맵이 생성됩니다.
경고: 이 함수는 초기화되지 않은 데이터를 가진 QPixmap을 생성합니다. QPainter 를 사용하여 픽스맵에 그림을 그리기 전에 fill()를 호출하여 픽스맵을 적절한 색상으로 채워야 합니다.
isNull()도 참조하십시오 .
QPixmap::QPixmap(const QString &fileName, const char *format = nullptr, Qt::ImageConversionFlags flags = Qt::AutoColor)
지정된 fileName 을 사용하여 파일로부터 픽스맵을 생성합니다. 파일이 존재하지 않거나 알 수 없는 형식인 경우, 픽스맵은 null 픽스맵이 됩니다.
로더는 지정된 ` format`을 사용하여 픽스맵을 읽으려고 시도합니다. ` format `이 지정되지 않은 경우(기본값), 로더는 파일 헤더를 탐색하여 파일 형식을 추측합니다.
파일 이름은 디스크에 실제로 존재하는 파일을 가리키거나 애플리케이션의 내장 리소스 중 하나를 가리킬 수 있습니다. 애플리케이션 실행 파일에 이미지 및 기타 리소스 파일을 내장하는 방법에 대한 자세한 내용은 리소스 시스템 개요를 참조하십시오.
더 낮은 해상도의 결과물에 맞추기 위해 이미지를 수정해야 하는 경우(예: 32비트에서 8비트로 변환), ` flags `를 사용하여 변환을 제어하십시오.
fileName, format 및 flags 매개변수는 load() 함수로 전달됩니다. 즉, fileName 의 데이터는 바이너리에 컴파일되지 않습니다. fileName 에 상대 경로(예: 파일명만)가 포함된 경우, 해당 파일은 런타임 작업 디렉터리를 기준으로 찾아야 합니다.
Reading and Writing Image Files도 참조하십시오 .
[explicit] QPixmap::QPixmap(const QSize &size)
지정된 ` size`의 픽스맵을 생성합니다.
경고: 이 함수는 초기화되지 않은 데이터를 가진 QPixmap을 생성합니다. QPainter 을 사용하여 그림을 그리기 전에 fill()을 호출하여 픽스맵을 적절한 색상으로 채워야 합니다.
이 함수는 오버로드된 함수입니다.
QPixmap::QPixmap(const QPixmap &pixmap)
지정된 ` pixmap`의 복사본인 픽스맵을 생성합니다.
copy()도 참조하십시오 .
[noexcept] QPixmap::QPixmap(QPixmap &&other)
other 에서 QPixmap 인스턴스를 이동 생성합니다.
swap() 및 operator=(QPixmap&&)도 참조하십시오 .
[virtual noexcept] QPixmap::~QPixmap()
픽스맵을 삭제합니다.
qint64 QPixmap::cacheKey() const
이 QPixmap 를 식별하는 숫자를 반환합니다. 서로 다른 QPixmap 객체들은 동일한 콘텐츠를 참조하는 경우에만 동일한 캐시 키를 가질 수 있습니다.
픽스맵이 변경되면 cacheKey()도 변경됩니다.
bool QPixmap::convertFromImage(const QImage &image, Qt::ImageConversionFlags flags = Qt::AutoColor)
지정된 변환 매개변수( flags )를 사용하여 이 픽스맵의 데이터를 주어진 픽셀 매핑( image )으로 대체합니다. 변환 매개변수( flags )는 픽셀 매핑( Qt::ImageConversionFlags)과 비트별 OR 연산을 수행한 결과입니다. 픽셀 매핑( flags )에 0을 전달하면 모든 기본 옵션이 설정됩니다. 결과적으로 이 픽스맵이 null이 아닌 경우 true 을 반환합니다.
fromImage()도 참조하십시오 .
QPixmap QPixmap::copy(const QRect &rectangle = QRect()) const
주어진 ` rectangle`로 지정된 픽스맵의 부분 영역에 대한 딥 카피를 반환합니다. 딥 카피에 대한 자세한 내용은 ‘암시적 데이터 공유’ 문서를 참조하십시오.
주어진 ` rectangle `가 비어 있으면 이미지 전체가 복사됩니다.
operator=(), QPixmap(), Pixmap Transformations도 참조하십시오 .
QPixmap QPixmap::copy(int x, int y, int width, int height) const
직사각형 QRect( x, y, width, height)으로 지정된 픽스맵의 부분 영역에 대한 딥 카피를 반환합니다.
이 함수는 오버로드된 함수입니다.
QBitmap QPixmap::createHeuristicMask(bool clipTight = true) const
이 픽스맵에 대한 휴리스틱 마스크를 생성하여 반환합니다.
이 함수는 모서리 중 한 곳에서 색상을 선택한 다음, 모든 가장자리부터 시작하여 해당 색상의 픽셀을 제거하는 방식으로 작동합니다. ` clipTight `가 true(기본값)인 경우, 마스크는 픽셀을 덮을 수 있을 만큼만 크며, 그렇지 않은 경우 마스크는 데이터 픽셀보다 더 큽니다.
마스크가 완벽하지는 않을 수 있지만 합리적인 수준이므로, 다음과 같은 작업을 수행할 수 있습니다:
QPixmap myPixmap;
myPixmap.setMask(myPixmap.createHeuristicMask());이 함수는 ` QImage` 형식과의 변환 및 상당한 연산을 수반하기 때문에 처리 속도가 느립니다.
QImage::createHeuristicMask() 및 createMaskFromColor()도 참조하십시오 .
QBitmap QPixmap::createMaskFromColor(const QColor &maskColor, Qt::MaskMode mode = Qt::MaskInColor) const
주어진 마스크 색상( maskColor)을 기반으로 이 픽스맵에 대한 마스크를 생성하여 반환합니다. 마스크 색상( mode )이 투명( Qt::MaskInColor)인 경우, 마스크 색상(maskColor)과 일치하는 모든 픽셀은 투명해집니다. 마스크 색상( mode )이 불투명( Qt::MaskOutColor)인 경우, 마스크 색상(maskColor)과 일치하는 모든 픽셀은 불투명해집니다.
이 함수는 QImage 로의 변환 및 역변환 과정을 포함하기 때문에 처리 속도가 느립니다.
createHeuristicMask() 및 QImage::createMaskFromColor()도 참조하십시오 .
[static] int QPixmap::defaultDepth()
애플리케이션에서 사용하는 기본 픽스맵 깊이를 반환합니다.
모든 플랫폼에서 기본 화면의 깊이가 반환됩니다.
참고: 이 함수를 호출하기 전에QGuiApplication 를 생성해야 합니다.
depth() 및 Pixmap Information도 참조하십시오 .
int QPixmap::depth() const
픽스맵의 깊이를 반환합니다.
픽스맵의 깊이는 픽셀당 비트 수(bpp) 또는 픽스맵의 비트 플레인이라고도 합니다. null 픽스맵의 깊이는 0입니다.
defaultDepth() 및 Pixmap Information도 참조하십시오 .
void QPixmap::detach()
공유 픽스맵 데이터에서 픽스맵을 분리합니다.
픽스맵의 내용이 변경될 때마다 Qt는 자동으로 픽스맵을 분리합니다. 이는 픽스맵을 수정하는 거의 모든 ` QPixmap ` 멤버 함수(`fill()`, ` fromImage()`, ` load()` 등)와 픽스맵에 대한 ` QPainter::begin()`에서 수행됩니다.
detach()를 명시적으로 호출해야 하는 두 가지 예외가 있는데, 바로 handle() 함수나 x11PictureHandle() 함수(X11에서만 사용 가능)를 호출할 때입니다. 그 외의 경우, 시스템 호출을 통해 수행된 모든 수정은 공유 데이터에 적용됩니다.
참조가 단 하나뿐이거나 픽스맵이 아직 초기화되지 않은 경우, detach() 함수는 즉시 반환됩니다.
[since 6.2] QSizeF QPixmap::deviceIndependentSize() const
픽스맵의 크기를 장치 독립 픽셀(DIP) 단위로 반환합니다.
이 값은 사용자 인터페이스 크기 계산에 픽스맵 크기를 사용할 때 사용해야 합니다.
반환 값은 pixmap.size() / pixmap.devicePixelRatio()과 동일합니다.
이 함수는 Qt 6.2에서 도입되었습니다.
qreal QPixmap::devicePixelRatio() const
픽스맵의 장치 픽셀 비율을 반환합니다. 이는 장치 픽셀과 장치 독립 픽셀 간의 비율입니다.
픽스맵 크기를 기반으로 레이아웃 기하 구조를 계산할 때 이 함수를 사용합니다: QSize layoutSize = image.size() / image.devicePixelRatio()
기본값은 1.0입니다.
setDevicePixelRatio() 및 QImageReader도 참조하십시오 .
void QPixmap::fill(const QColor &color = Qt::white)
지정된 color 로 픽스맵을 채웁니다.
픽스맵에 그림이 그려지고 있는 중에는 이 함수의 동작이 정의되지 않습니다.
Pixmap Transformations도 참조하십시오 .
[static] QPixmap QPixmap::fromImage(const QImage &image, Qt::ImageConversionFlags flags = Qt::AutoColor)
지정된 image 를 픽스맵으로 변환하며, 변환 과정을 제어하기 위해 지정된 flags 를 사용합니다. flags 인자는 Qt::ImageConversionFlags 의 비트별 OR 연산 결과입니다. flags 에 0을 전달하면 모든 기본 옵션이 적용됩니다.
단색 및 8비트 이미지의 경우, 이미지는 먼저 32비트 픽스맵으로 변환된 후 컬러 테이블의 색상으로 채워집니다. 이 작업의 처리 비용이 너무 높다면, 대신 ` QBitmap::fromImage()`를 사용할 수 있습니다.
fromImageReader(), toImage() 및 Pixmap Conversion도 참조하십시오 .
[static] QPixmap QPixmap::fromImage(QImage &&image, Qt::ImageConversionFlags flags = Qt::AutoColor)
주어진 image 를 가능하면 복사하지 않고 픽스맵으로 변환합니다.
이 함수는 오버로드된 함수입니다.
[static] QPixmap QPixmap::fromImageReader(QImageReader *imageReader, Qt::ImageConversionFlags flags = Qt::AutoColor)
imageReader 에서 직접 읽은 이미지를 사용하여 QPixmap 를 생성합니다. flags 인수는 Qt::ImageConversionFlags 의 비트별 OR 연산 결과입니다. flags 에 0을 전달하면 모든 기본 옵션이 설정됩니다.
일부 시스템에서는 이미지를 QPixmap 로 직접 읽어들이는 것이, QImage 를 읽어와 QPixmap 로 변환하는 것보다 메모리 사용량이 적을 수 있습니다.
fromImage(), toImage() 및 Pixmap Conversion도 참조하십시오 .
bool QPixmap::hasAlpha() const
이 픽스맵에 알파 채널이 있거나 마스크가 있는 경우 true 를 반환하고, 그렇지 않은 경우 false 를 반환합니다.
hasAlphaChannel() 및 mask()도 참조하십시오 .
bool QPixmap::hasAlphaChannel() const
픽스맵의 형식이 알파 채널을 지원하는 경우 ` true `을 반환하고, 그렇지 않은 경우 ` false`을 반환합니다.
hasAlpha()도 참조하십시오 .
int QPixmap::height() const
픽스맵의 높이를 반환합니다.
size() 및 Pixmap Information도 참조하십시오 .
bool QPixmap::isNull() const
이 픽스맵이 null인 경우 ` true `을 반환하고, 그렇지 않은 경우 ` false`을 반환합니다.
null 픽스맵은 너비와 높이가 0이며 내용이 없습니다. null 픽스맵에는 그림을 그릴 수 없습니다.
bool QPixmap::isQBitmap() const
이 값이 ` QBitmap`인 경우 ` true `를 반환하고, 그렇지 않은 경우 ` false`를 반환합니다.
bool QPixmap::load(const QString &fileName, const char *format = nullptr, Qt::ImageConversionFlags flags = Qt::AutoColor)
지정된 fileName 를 가진 파일에서 픽스맵을 불러옵니다. 픽스맵이 성공적으로 불러오면 true를 반환하고, 그렇지 않으면 픽스맵을 무효화하고 false 를 반환합니다.
로더는 지정된 ` format`을 사용하여 픽스맵을 읽으려고 시도합니다. ` format `이 지정되지 않은 경우(기본값), 로더는 파일 헤더를 탐색하여 파일 형식을 추측합니다.
파일 이름은 디스크에 실제로 존재하는 파일을 가리키거나, 애플리케이션에 내장된 리소스 중 하나를 가리킬 수 있습니다. 애플리케이션 실행 파일에 픽스맵 및 기타 리소스 파일을 내장하는 방법에 대한 자세한 내용은 리소스 시스템 개요를 참조하십시오.
더 낮은 해상도의 결과물에 맞추기 위해 데이터를 수정해야 하는 경우(예: 32비트에서 8비트로 변환), flags 를 사용하여 변환을 제어하십시오.
메인 스레드에서 파일을 불러올 때 QPixmap은 자동으로 ` QPixmapCache `에 추가된다는 점에 유의하십시오. 이때 사용되는 키는 내부용이며 획득할 수 없습니다.
loadFromData() 및 Reading and Writing Image Files도 참조하십시오 .
bool QPixmap::loadFromData(const uchar *data, uint len, const char *format = nullptr, Qt::ImageConversionFlags flags = Qt::AutoColor)
지정된 바이너리 파일 data 의 처음 len 바이트에서 픽스맵을 불러옵니다. 픽스맵이 성공적으로 불러온 경우 true 를 반환하고, 그렇지 않은 경우 픽스맵을 무효화하고 false 를 반환합니다.
로더는 지정된 format 를 사용하여 픽스맵을 읽으려고 시도합니다. format 가 지정되지 않은 경우(기본값), 로더는 파일에서 헤더를 탐색하여 파일 형식을 추측합니다.
더 낮은 해상도의 결과물에 맞추기 위해 데이터를 수정해야 하는 경우(예: 32비트에서 8비트로 변환), flags 를 사용하여 변환을 제어하십시오.
load() 및 Reading and Writing Image Files도 참조하십시오 .
bool QPixmap::loadFromData(const QByteArray &data, const char *format = nullptr, Qt::ImageConversionFlags flags = Qt::AutoColor)
지정된 format 및 변환 flags 을 사용하여 바이너리 data 파일에서 픽스맵을 불러옵니다.
이 함수는 오버로드된 함수입니다.
QBitmap QPixmap::mask() const
픽스맵의 알파 채널에서 비트맵 마스크를 추출합니다.
경고: 이 작업은 처리 비용이 클 수 있습니다. 픽스맵의 마스크는 픽셀 데이터에서 동적으로 추출됩니다.
setMask() 및 Pixmap Information도 참조하십시오 .
QRect QPixmap::rect() const
픽스맵을 둘러싼 직사각형을 반환합니다.
Pixmap Information도 참조하십시오 .
bool QPixmap::save(const QString &fileName, const char *format = nullptr, int quality = -1) const
지정된 이미지 파일 format 과 quality 계수를 사용하여, 주어진 fileName 로 픽스맵을 파일에 저장합니다. 성공하면 true 를 반환하고, 그렇지 않으면 false 를 반환합니다.
quality 인자는 [0,100] 또는 -1의 범위 내에 있어야 합니다. 압축된 작은 파일을 얻으려면 0을, 압축되지 않은 큰 파일을 얻으려면 100을, 기본 설정을 사용하려면 -1을 지정하십시오.
format 가 nullptr 인 경우, fileName 의 확장자 중에서 이미지 형식이 선택됩니다.
Reading and Writing Image Files도 참조하십시오 .
bool QPixmap::save(QIODevice *device, const char *format = nullptr, int quality = -1) const
이 함수는 지정된 이미지 파일( format )과 quality 인자를 사용하여, 주어진 device 에 QPixmap 를 작성합니다. 예를 들어, 이 함수를 사용하면 픽스맵을 QByteArray 에 직접 저장할 수 있습니다:
QPixmap pixmap;
QByteArray bytes;
QBuffer buffer(&bytes);
buffer.open(QIODevice::WriteOnly);
pixmap.save(&buffer, "PNG"); // writes pixmap into bytes in PNG format이 함수는 오버로드된 함수입니다.
QPixmap QPixmap::scaled(const QSize &size, Qt::AspectRatioMode aspectRatioMode = Qt::IgnoreAspectRatio, Qt::TransformationMode transformMode = Qt::FastTransformation) const
aspectRatioMode 및 transformMode 에서 지정된 종횡비 및 변환 모드를 사용하여 픽스맵을 지정된 size 크기로 확대/축소합니다.

- aspectRatioMode 가 Qt::IgnoreAspectRatio 인 경우, 픽스맵은 size 로 크기가 조정됩니다.
- aspectRatioMode 가 Qt::KeepAspectRatio 인 경우, 픽스맵은 종횡비를 유지하면서 size 내부에서 가능한 한 큰 직사각형 크기로 조정됩니다.
- aspectRatioMode 가 Qt::KeepAspectRatioByExpanding 인 경우, 픽스맵은 종횡비를 유지하면서 size 외부에서 가능한 한 작은 직사각형으로 크기가 조정됩니다.
주어진 ` size `가 비어 있으면, 이 함수는 null 픽스맵을 반환합니다.
경우에 따라 픽스맵을 확대/축소하는 것보다, 확대/축소 비율이 설정된 페인터에 픽스맵을 그리는 것이 더 유리할 수 있습니다. 이는 예를 들어 페인터가 OpenGL을 기반으로 하거나 확대/축소 비율이 급격하게 변하는 경우에 해당합니다.
isNull() 및 Pixmap Transformations도 참조하십시오 .
QPixmap QPixmap::scaled(int width, int height, Qt::AspectRatioMode aspectRatioMode = Qt::IgnoreAspectRatio, Qt::TransformationMode transformMode = Qt::FastTransformation) const
지정된 width 및 height 에 따라, 지정된 aspectRatioMode 및 transformMode 에 맞춰 직사각형 크기로 조정된 픽스맵의 복사본을 반환합니다.
width 또는 height 중 하나라도 0이거나 음수인 경우, 이 함수는 null 픽스맵을 반환합니다.
이 함수는 오버로드된 함수입니다.
QPixmap QPixmap::scaledToHeight(int height, Qt::TransformationMode mode = Qt::FastTransformation) const
이미지의 크기를 조정한 복사본을 반환합니다. 반환된 이미지는 지정된 변환 mode 을 사용하여 주어진 height 크기로 조정됩니다. 픽스맵의 가로 길이는 픽스맵의 종횡비가 유지되도록 자동으로 계산됩니다.
height 가 0이거나 음수인 경우, null 픽스맵이 반환됩니다.
isNull() 및 Pixmap Transformations도 참조하십시오 .
QPixmap QPixmap::scaledToWidth(int width, Qt::TransformationMode mode = Qt::FastTransformation) const
이미지의 크기를 조정한 복사본을 반환합니다. 반환된 이미지는 지정된 변환 mode 을 사용하여 주어진 width 크기로 조정됩니다. 픽스맵의 종횡비가 유지되도록 픽스맵의 높이는 자동으로 계산됩니다.
width 가 0이거나 음수인 경우, null 픽스맵이 반환됩니다.
isNull() 및 Pixmap Transformations도 참조하십시오 .
void QPixmap::scroll(int dx, int dy, const QRect &rect, QRegion *exposed = nullptr)
이 픽스맵의 rect 영역을 (dx, dy)만큼 스크롤합니다. 노출된 영역은 변경되지 않습니다. 선택적으로 빈 QRegion 의 포인터를 전달하여 스크롤 작업으로 인해 exposed 된 영역을 가져올 수 있습니다.
픽스맵에 활성 페인터가 있는 동안에는 스크롤할 수 없습니다.
QWidget::scroll() 및 QGraphicsItem::scroll()함수도 참조하십시오 .
void QPixmap::scroll(int dx, int dy, int x, int y, int width, int height, QRegion *exposed = nullptr)
이 편의 함수는 QPixmap::scroll(dx, dy, QRect(x, y, width, height), exposed)를 호출하는 것과 동일합니다.
QWidget::scroll() 및 QGraphicsItem::scroll()도 참조하십시오 .
void QPixmap::setDevicePixelRatio(qreal scaleFactor)
픽스맵의 장치 픽셀 비율을 설정합니다. 이는 이미지 픽셀과 장치 독립 픽셀 간의 비율을 의미합니다.
기본값 scaleFactor 은 1.0입니다. 이 값을 다른 값으로 설정하면 두 가지 효과가 나타납니다:
픽스맵에서 열린 QPainter는 크기가 조정됩니다. 예를 들어, 비율이 2.0인 상태에서 200x200 이미지에 그리기를 수행하면, 실제(장치 독립적) 그리기 범위는 100x100이 됩니다.
Qt에서 픽스맵 크기를 기반으로 레이아웃 기하 구조를 계산하는 코드 경로는 이 비율을 고려합니다: QSize layoutSize = pixmap.size() / pixmap.devicePixelRatio() 이로 인해 픽스맵은 단순히 큰 크기의 픽스맵이 아닌 고해상도(high-DPI) 픽스맵으로 표시됩니다( Drawing High Resolution Versions of Pixmaps and Images 참조).
devicePixelRatio() 및 deviceIndependentSize()도 참조하십시오 .
void QPixmap::setMask(const QBitmap &mask)
마스크 비트맵을 설정합니다.
이 함수는 mask 을 픽스맵의 알파 채널과 병합합니다. 마스크의 픽셀 값이 1이면 픽스맵의 해당 픽셀은 변경되지 않으며, 0이면 해당 픽셀은 투명해집니다. 마스크는 이 픽스맵과 동일한 크기를 가져야 합니다.
마스크를 null로 설정하면 마스크가 재설정되며, 이전에 투명했던 픽셀은 검은색으로 남게 됩니다. 픽스맵에 그림이 그려지고 있는 중에는 이 함수의 동작이 정의되지 않습니다.
경고: 이 작업은 잠재적으로 많은 자원을 소모할 수 있습니다.
mask(), Pixmap Transformations, QBitmap도 참조하십시오 .
QSize QPixmap::size() const
픽스맵의 크기를 반환합니다.
width(), height() 및 Pixmap Information도 참조하십시오 .
[noexcept] void QPixmap::swap(QPixmap &other)
이 픽스맵을 ` other`로 교체합니다. 이 작업은 매우 빠르며 절대 실패하지 않습니다.
QImage QPixmap::toImage() const
픽스맵을 QImage 로 변환합니다. 변환에 실패하면 null 이미지를 반환합니다.
픽스맵의 비트 심도가 1비트인 경우, 반환되는 이미지의 비트 심도도 1비트가 됩니다. 비트 심도가 더 높은 이미지는 기본 시스템 형식을 최대한 반영한 형식으로 반환됩니다. 일반적으로 알파 채널이 있는 픽스맵의 경우 ` QImage::Format_ARGB32_Premultiplied ` 형식으로, 알파 채널이 없는 픽스맵의 경우 ` QImage::Format_RGB32 ` 또는 ` QImage::Format_RGB16 ` 형식으로 반환됩니다.
현재는 단색 이미지의 알파 마스크가 무시된다는 점에 유의하십시오.
fromImage() 및 Image Formats도 참조하십시오 .
QPixmap QPixmap::transformed(const QTransform &transform, Qt::TransformationMode mode = Qt::FastTransformation) const
주어진 변환 transform 과 변환 mode 을 사용하여 변환된 픽스맵의 복사본을 반환합니다. 원본 픽스맵은 변경되지 않습니다.
변환 transform 는 원치 않는 평행 이동을 보정하기 위해 내부적으로 조정됩니다. 즉, 생성된 픽스맵은 원본 픽스맵의 모든 변환된 점을 포함하는 가장 작은 픽스맵입니다. 픽스맵 변환에 사용된 실제 행렬을 가져오려면 trueMatrix() 함수를 사용하십시오.
이 함수는 QImage 로의 변환, 비사소한 계산, 그리고 QPixmap 로의 역변환을 포함하기 때문에 처리 속도가 느립니다.
trueMatrix() 및 Pixmap Transformations도 참조하십시오 .
[static] QTransform QPixmap::trueMatrix(const QTransform &matrix, int width, int height)
주어진 ` width`, ` height ` 및 ` matrix`을 사용하여 픽스맵을 변환하는 데 실제로 사용되는 행렬을 반환합니다.
transformed() 함수를 사용하여 픽스맵을 변환할 때, 원치 않는 평행 이동을 보정하기 위해 변환 행렬이 내부적으로 조정됩니다. 즉, transformed()은 원본 픽스맵의 모든 변환된 점을 포함하는 가장 작은 픽스맵을 반환합니다. 이 함수는 원본 픽스맵의 점을 새로운 픽스맵으로 올바르게 매핑하는 수정된 행렬을 반환합니다.
transformed() 및 Pixmap Transformations도 참조하십시오 .
int QPixmap::width() const
픽스맵의 너비를 반환합니다.
size() 및 Pixmap Information도 참조하십시오 .
QPixmap::operator QVariant() const
픽스맵을 ` QVariant` 형식으로 반환합니다.
bool QPixmap::operator!() const
이 픽스맵이 null인 경우 true 를 반환하고, 그렇지 않은 경우 false 를 반환합니다.
isNull()도 참조하십시오 .
[noexcept] QPixmap &QPixmap::operator=(QPixmap &&other)
other 를 이 QPixmap 인스턴스에 할당합니다.
QPixmap &QPixmap::operator=(const QPixmap &pixmap)
지정된 pixmap 을 이 픽스맵에 할당하고, 이 픽스맵에 대한 참조를 반환합니다.
관련 비회원 함수
QDataStream &operator<<(QDataStream &stream, const QPixmap &pixmap)
지정된 ` pixmap `를 지정된 ` stream `에 PNG 이미지 형식으로 기록합니다. 스트림을 파일에 기록한다고 해서 유효한 이미지 파일이 생성되는 것은 아니라는 점에 유의하십시오.
QPixmap::save() 및 Qt 데이터 유형 직렬화항목도 참조하십시오 .
QDataStream &operator>>(QDataStream &stream, QPixmap &pixmap)
지정된 stream 에서 이미지를 읽어와 지정된 pixmap 로 저장합니다.
QPixmap::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.