Qt学习之使用QLabel加载图片并进行图像拼接

目录

一、前言

二、使用QLabel加载本地图片

三、将4张图进行拼接


一、前言

        本文介绍如何使用QLabel加载本地图片,将不同的图像进行拼接成一张图并保存至本地。主要用到QLabel、QPixmap、QImage、QPainter这几个类。

二、使用QLabel加载本地图片

  • 工程文件夹下的image文件夹下有如下4张图。

  • 使用 QLabel的setPixmap函数加载图片
  • 函数原型 void setPixmap(const QPixmap &);

 代码如下:

this->setFixedSize(500, 500);

//左上角
this->label1 = new QLabel(this);
this->label1->setGeometry(0, 0, 200, 200);//设置位置大小 x、y、w、h
this->label1->setPixmap(QPixmap("image/left-up.png").scaled(200, 200));

//右上角
this->label2 = new QLabel(this);
this->label2->setGeometry(300, 0, 200, 200);
this->label2->setPixmap(QPixmap("image/right-up.png").scaled(200, 200));

//左下角
this->label3 = new QLabel(this);
this->label3->setGeometry(0, 300, 200, 200);
this->label3->setPixmap(QPixmap("image/left-down.png").scaled(200, 200));

//右下角
this->label4 = new QLabel(this);
this->label4->setGeometry(300, 300, 200, 200);
this->label4->setPixmap(QPixmap("image/right-down.png").scaled(200, 200));

scaled函数的作用主要是将原图按比例缩放,此处是将原图按比例缩放成和QLabel一样大。

  •  实现效果如下

 

 三、将4张图进行拼接

  • 首先准备一个空的QImage
QImage img = QImage(200 + 200, 200 + 200, QImage::Format_RGB888); //宽高为4张图拼接起来的总宽高
  • 使用QPainter将每个label上的像素绘制到空的QImage上
QPainter paint(&img);

//左上角
paint.drawPixmap(0, 0,200, 200, QPixmap::fromImage(this->label1->pixmap()->toImage()));
//右上角
paint.drawPixmap(200, 0,200, 200, QPixmap::fromImage(this->label2->pixmap()->toImage()));
//左下角
paint.drawPixmap(0, 200,200, 200, QPixmap::fromImage(this->label3->pixmap()->toImage()));
//右下角
paint.drawPixmap(200, 200,200, 200, QPixmap::fromImage(this->label4->pixmap()->toImage()));
  • 将绘制完QImage保存至本地
img.save("image/test.png");
  •  保存后的效果

 test.png为拼接完保存下来的图片。

 

😘The end ……🔚

原创不易,转载请标明出处。

对您有帮助的话可以一键三连,会持续更新的(嘻嘻)。

评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

似末

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值