임의 메로리 영역(QImage)에 QPainter를 이용하여 그리고 파일로 저장하는 방법을 보여준다.
#include <QApplication> #include <QImage> #include <QPainter> #define WIDTH (1024) #define HEIGHT (768) int main(int argc, char *argv[]) { QApplication a(argc, argv); unsigned char *buffer = nullptr; QImage *canvas = nullptr; buffer = new unsigned char[WIDTH * HEIGHT * 4]; canvas = new QImage(buffer, WIDTH, HEIGHT, QImage::Format_ARGB32_Premultiplied); canvas->fill(0xffffffff); QRectF rectangle(0, 0, 1024, 768); int startAngle = 30 * 16; int spanAngle = 120 * 16; QPainter painter(canvas); painter.drawPie(rectangle, startAngle, spanAngle); canvas->save("test.png", "PNG"); delete [] buffer; painter.end(); delete canvas; return a.exec(); }
위 예제 소스코드는 아래 그림의 결과물을 만들어 낸다.