한국어
Qt
 

임의 메로리 영역(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();
}

 

위 예제 소스코드는 아래 그림의 결과물을 만들어 낸다.

 

 

test.png

 

번호 제목 글쓴이 날짜 조회 수
공지 Qt프로그래밍(QtQuick) Beginner를 위한 글 읽는 순서 운영자 2019.01.05 86192
19 Qt의 스레드간 시그널 슬롯의 커넥션타입 [1] makersweb 2015.10.24 10220
18 Ubuntu Linux에서 Qt Creator 설치 file makersweb 2016.03.06 10682
17 Qt 응용프로그램 배포(windows) file makersweb 2018.10.10 11388
16 Qt Installer Framework - 패키징, 설치프로그램 제작 file makersweb 2018.10.14 11697
15 QtSerialPort를 사용한 시리얼(Serial)통신 [3] makersweb 2019.05.21 11979
14 Qml 기본 컴포넌트 강좌 (1) file makersweb 2019.01.03 12122
13 Qt의 오픈소스 라이센스 소개 file makersweb 2019.12.15 12624
12 Windows에서 라즈베리파이3용 Qt5.10.0 크로스컴파일 [20] file makersweb 2018.02.23 13053
11 QML과 QtQuick 모듈 개념과 기본 타입들 makersweb 2019.04.26 13440
10 Qml과 C++로 구현하는 GUI어플리케이션 file makersweb 2018.12.25 14013
9 Qt 프로그래밍의 시작 makersweb 2015.10.25 14413
8 초보자를 위한 첫번째 프로젝트 - QML로 만드는 Hello World file makersweb 2018.03.16 14519
7 QtCreator Design으로 GUI만들기 (QML로 만드는 Hello World -2) [1] file makersweb 2019.05.26 14982
6 QThread 소개 및 예제 makersweb 2019.12.25 19595
5 Qt의 시그널 슬롯 시스템 file makersweb 2015.10.20 23677
4 Windows에서 Qt 설치 따라하기 file makersweb 2019.10.14 30936
3 QString 문자열 다루기 예제 운영자 2019.01.26 40352
2 콘솔에서 사용자 입력받기 file makersweb 2020.03.22 51861
1 가상키보드(Qt Virtual Keyboard)를 사용하는 방법 [32] file makersweb 2019.05.03 221906