QCanvasImage Class
QCanvasImage는 QCanvasPainter 의 이미지 클래스입니다. 더 보기...
| 헤더: | #include <QCanvasImage> |
| CMake: | find_package(Qt6 REQUIRED COMPONENTS CanvasPainter)target_link_libraries(mytarget PRIVATE Qt6::CanvasPainter) |
| 이후 | Qt 6.11 |
| 상태: | 기술 미리보기 |
공용 함수
| QCanvasImage() | |
| QCanvasImage(const QCanvasImage &image) | |
| QCanvasImage(QCanvasImage &&other) | |
| ~QCanvasImage() | |
| int | height() const |
| int | id() const |
| bool | isNull() const |
| void | setTintColor(const QColor &color) |
| QSize | size() const |
| qsizetype | sizeInBytes() const |
| void | swap(QCanvasImage &other) |
| QColor | tintColor() const |
| int | width() const |
| operator QVariant() const | |
| QCanvasImage & | operator=(QCanvasImage &&other) |
| QCanvasImage & | operator=(const QCanvasImage &image) |
관련 비회원
| bool | operator!=(const QCanvasImage &lhs, const QCanvasImage &rhs) |
| bool | operator==(const QCanvasImage &lhs, const QCanvasImage &rhs) |
상세 설명
QCanvasImage 는 QCanvasPainter 에서 사용하는 이미지 클래스입니다. 이미지를 그릴 수 있으려면 QCanvasPainter::addImage()와 같이 주먹을 사용할 수 있도록 만들어야 합니다. 그런 다음 QCanvasPainter::drawImage()를 사용하여 이미지를 그대로 그리거나 QCanvasImagePattern 브러시를 사용하여 채우기/획을 그릴 수 있습니다.
다음은 간단한 예시입니다:
static QImage logoImage(":/qtlogo.png"); // Paint an image pattern. QCanvasImage bg = painter.addImage(logoImage, QCanvasPainter::ImageFlag::Repeat | QCanvasPainter::ImageFlag::GenerateMipmaps); QCanvasImagePattern ip(bg, 0, 0, 44, 32); painter.setFillStyle(ip); painter.fillRect(50, 50, 320, 230); // Paint a single image, with tint color. QCanvasImage logo = painter.addImage(logoImage); logo.setTintColor("#2cde85"); painter.drawImage(logo, 100, 80);

위의 예에서 QImage 는 정적이며 다시 칠할 때마다 addImage()가 호출됩니다. 이미지와 플래그가 동일하게 유지되면 addImage()는 이미지를 텍스처로 다시 업로드하는 대신 캐시에서 이미지를 가져 오므로 문제가 되지 않습니다. 그러나 더 일반적인 접근 방식은 QCanvasImage 변수를 클래스 멤버로 사용하고 QCanvasPainterItemRenderer::initializeResources()에서 QCanvasPainter::addImage()를 호출하는 것입니다.
QCanvasBrush 및 QCanvasOffscreenCanvas 과 유사하게 QCanvasImage는 명시적으로 공유됩니다. 자세한 내용은 암시적 데이터 공유 및 QSharedDataPointer 을 참조하십시오.
참고: QCanvasImage 객체에는 텍스처와 같은 그래픽 리소스에 대한 핸들만 포함됩니다. 분리가 발생하더라도 실제 리소스, 즉 기본 텍스처와 그 안의 이미지 데이터는 실제로 복사되거나 복제되지 않습니다. 실제 그래픽 리소스(예: QRhiTexture)의 실제 소유자는 addImage()를 통해 QCanvasImage를 배포한 QCanvasPainter 입니다.
QCanvasImage는 항상 그것을 만든 QCanvasPainter 에 속합니다. 이미지를 수동으로 제거하려면 removeImage()를 호출하면 됩니다. 그러나 대부분의 경우 페인터가 자체 소멸하는 동안 이미지를 자동으로 소멸하므로 이 작업은 필요하지 않습니다.
멤버 함수 문서
QCanvasImage::QCanvasImage()
기본 이미지를 구성합니다.
QCanvasImage::QCanvasImage(const QCanvasImage &image)
주어진 image 의 복사본인 이미지를 생성합니다.
[constexpr noexcept] QCanvasImage::QCanvasImage(QCanvasImage &&other)
이동 - other 에서 새 QCanvasImage를 생성합니다.
[noexcept] QCanvasImage::~QCanvasImage()
이미지를 삭제합니다.
int QCanvasImage::height() const
이 이미지의 높이를 반환합니다.
int QCanvasImage::id() const
이 이미지의 텍스처 ID를 반환합니다. 이미지가 아직 할당되지 않은 경우 0을 반환합니다.
isNull()도 참조하세요 .
bool QCanvasImage::isNull() const
이미지가 아직 할당되지 않은 경우 true를 반환합니다. 자세한 내용은 QCanvasPainter::addImage()를 참조하세요.
void QCanvasImage::setTintColor(const QColor &color)
이미지의 색조 color 를 설정합니다. 이 색상에 이미지 색상을 곱하여 이미지에 색을 입힙니다. 예를 들어 테마에서 아이콘을 강조 표시하거나 이미지를 조정하는 데 사용할 수 있습니다.
tintColor()도 참조하세요 .
QSize QCanvasImage::size() const
이 이미지의 크기(너비 및 높이)를 반환합니다.
qsizetype QCanvasImage::sizeInBytes() const
이 이미지의 크기를 바이트 단위로 반환합니다.
QCanvasPainter addImage ()이 반환된 후에는 CPU 측 QImage 데이터의 복사본을 보관하지 않습니다. 소스가 offscreen canvas 인 경우 애초에 CPU 측 이미지 데이터가 없습니다. 따라서 이 함수의 결과는 기본 텍스처에 사용되는 GPU 메모리의 근사치입니다.
참고: 이 값은 이미지 형식과 치수를 기반으로 한 추정치일 뿐입니다. Qt는 텍스처의 데이터가 GPU 측의 메모리에 어떻게 저장되고 배치되는지에 대한 지식이 없습니다.
참고: 이 함수는 밉맵이나 멀티샘플 데이터를 고려하지 않습니다.
[noexcept] void QCanvasImage::swap(QCanvasImage &other)
이 이미지를 other 로 바꿉니다. 이 작업은 매우 빠르며 실패하지 않습니다.
QColor QCanvasImage::tintColor() const
이미지의 색조 색상을 반환합니다. 기본값은 Qt::white 입니다.
setTintColor()도 참조하세요 .
int QCanvasImage::width() const
이 이미지의 너비를 반환합니다.
QCanvasImage::operator QVariant() const
이미지를 QVariant 로 반환합니다.
[noexcept] QCanvasImage &QCanvasImage::operator=(QCanvasImage &&other)
이동-이 other 인스턴스를 QCanvasImage 인스턴스에 할당합니다.
QCanvasImage &QCanvasImage::operator=(const QCanvasImage &image)
주어진 image 을 이 이미지에 할당하고 이 이미지에 대한 참조를 반환합니다.
관련 비회원
[noexcept] bool operator!=(const QCanvasImage &lhs, const QCanvasImage &rhs)
이미지 핸들 lhs 이 rhs 과 다르면 true 을 반환하고, 그렇지 않으면 false 을 반환합니다.
operator==()도 참조하세요 .
[noexcept] bool operator==(const QCanvasImage &lhs, const QCanvasImage &rhs)
이미지 핸들 lhs 이 rhs 과 같으면 true 을 반환하고, 그렇지 않으면 false 을 반환합니다.
참고: 같다는 것은 두 이미지 객체가 동일한 그래픽 리소스를 참조하고 색조 색상이 동일하다는 의미입니다. 내용(픽셀 데이터)은 비교되지 않습니다.
operator!=()도 참조하세요 .
© 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.