1. 程式人生 > >Qt之生成png/jpg/bmp格式圖片

Qt之生成png/jpg/bmp格式圖片

一、問題描述:有時候需要把Qt繪製的一些圖形儲存為png/jpg/bmp格式的圖片,下面就根據自己寫的一個簡單的測試程式來講解一下Qt中儲存圖片的方法。本文主要講解使用Qpainter和QImage組合使用儲存圖片的方法。

二、顯示效果:

1、介面顯示效果:
這裡寫圖片描述

2、生成的圖片及圖片顯示效果:
這裡寫圖片描述

這裡寫圖片描述

三、核心程式碼示例:

#include "widget.h"
#include "ui_widget.h"
#include <QPen>

Widget::Widget(QWidget *parent) :
    QWidget(parent),
    ui(new Ui::Widget)
{
    ui->setupUi(this
); this->setWindowTitle("測試繪製圖片並儲存為png/jpg/bmp格式"); drawPicture(); } Widget::~Widget() { delete ui; } /// 重寫繪製事件,顯示在widgt上面 void Widget::paintEvent(QPaintEvent *event) { Q_UNUSED(event); QPainter *painter = new QPainter(this); painter->save(); QPen pen; pen.setWidth(2
); pen.setColor(Qt::red); painter->setPen(pen); painter->drawEllipse(QPoint(width()/2,height()/2),50,50); painter->drawLine(QPointF(0,0),QPointF(width()/2,height()/2)); painter->drawRect(QRect(40,40,150,160)); painter->restore(); painter->end(); } /// 繪製圖片中 void Widget::drawPicture() { QImage image(QSize(this
->width(),this->height()),QImage::Format_ARGB32); image.fill("white"); QPainter *painter = new QPainter(&image); painter->save(); QPen pen; pen.setWidth(2); pen.setColor(Qt::red); painter->setPen(pen); painter->drawEllipse(QPoint(width()/2,height()/2),50,50); painter->drawLine(QPointF(0,0),QPointF(width()/2,height()/2)); painter->drawRect(QRect(40,40,150,160)); painter->restore(); painter->end(); m_image = image; } /// 儲存為圖片 void Widget::savePicture(const QString fileName, const char *format) { m_image.save(fileName,format); }