Qt|QLabel显示刷新图像数据

6 篇文章 0 订阅

参考:QImage、QClipboard(https://zhuanlan.zhihu.com/p/649611141)

获取图像数据并转换为QImage

unsigned char *data = 图像数据;
QImage show_image_ = QImage(data, imgInfo.width, imgInfo.height, imgInfo.width,
QImage::Format_Grayscale8).copy();

刷新图像到QLabel
注:提前定义QPixmap会导致内存泄漏,在setPixmap时直接转换Image到qpixmap;
QLabel刷新效率有限,刷新过快可能导致内存增长,界面卡顿问题;
多线程要自定义信号槽控制ui控件,直接操作ui控件大概率崩溃;

Qt::IgnoreAspectRatio 不考虑图片比例,直接缩放到指定大小
Qt::KeepAspectRatio 保持图片比例,缩放到指定大小内的最大矩形
Qt::KeepAspectRatioByExpanding 保持图片比例,缩放到超出指定大小的最小矩形

Qt::FastTransformation:转换快速执行,没有平滑。
Qt::SmoothTransformation:使用双线性过滤转换生成的图像。

 ui.LabelImage->clear();
 ui.LabelImage->setPixmap(QPixmap::fromImage(show_image_.Image).scaled(ui.LabelImage->size(),
		 	Qt::KeepAspectRatio, Qt::FastTransformation));
 //不停地处理事件,让程序保持响应,解决界面卡顿问题,根据需求添加
 QCoreApplication::processEvents(); 

也可以通过QImage对象缩放图像

QImage scal = show_image_ .scaled(900, 800, Qt::KeepAspectRatio);	// 保持图像的长宽比例不变
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

奇树谦

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

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

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

打赏作者

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

抵扣说明:

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

余额充值