QImage的优势是可以进行像素点的修改,且与平台无关;而QPixmap与平台有关,对绘图进行了优化。所以,二者经常需要转化,下面给出实例项目06_pixmaptoimage.pro,代码如下
#include "widget.h"
#include "ui_widget.h"
#include <QPainter>
#include <QPixmap>
#include <QImage>
Widget::Widget(QWidget *parent) :
QWidget(parent),
ui(new Ui::Widget)
{
ui->setupUi(this);
}
Widget::~Widget()
{
delete ui;
}
void Widget::paintEvent(QPaintEvent *event)
{
QPainter p(this);
QPixmap pixmap;
pixmap.load("../images/luffy.png");
//Qpixmap -> Qimage
QImage image;
image = pixmap.toImage();
p.drawImage(0,0,image);
//Qimage -> Qpixmap
QImage image1;
image1.load("../images/luffy.png");
QPixmap pixtemp = QPixmap::fromImage(image1);
p.drawPixmap(image.width()+20,0,pixtemp);
}
运行效果: