在QT中用QLabel显示一张图像及QImage/QPixmap/QBitmap/QPicture

本文介绍了在QT中使用QPixmap和QImage两种方式显示图像的方法,并对比了它们的特点。QPixmap适用于绘图场景,而QImage更侧重于图片像素的访问与修改。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

       在QT中显示图像,是使用OpenCV联合QT进行机器视觉项目的开发的第一步。首先需要弄清楚的是QT的四个图像类QImage/QPixmap/QBitmap/QPicture。

       QPixmap是专门为绘图而生,当需要绘制图片时候需要使用QPixmap。为它是存储在服务器端,往QPixmap上绘图比较慢,但显示它则比较快。但在Windows平台上则是是一样的,因为它们都存储在客户端。

       QImage为I/O,为图片像素访问及修改而设计的,如果你想访问图片的像素或者修改图片的像素,则需要使用QImage,或者借助于QPainter来操作像素。在X11, Mac 以及 Symbian平台上,QImage: 因为它是存储在客户端,往QImage上绘图比较快,但显示它则比较慢。

       QBitmap只是一个继承于QPixmap的简单类,它可以确保图片深度为1。

       QPicture是一个绘画设备类,它记录了并可以重演QPainter的命令。你可以使用QPainter的begin()方法,指定在QPicture上绘图,使用end()方法结束绘图,使用QPicture的save()方法將QPainter所使用过的绘图指令存至档案。


方法一:

void Dialog::on_ButtonPic_clicked()
{
    QPixmap img;
    img.load("C:/Users/SLJ/Desktop/12.bmp");
    ui->labelPic->clear();
    ui->labelPic->setPixmap(img);
}


方法二:

void Dialog::on_ButtonPic_clicked()
{
    QImage image;
    image.load("C:/Users/SLJ/Desktop/12.bmp");
    ui->labelPic->clear();
    ui->labelPic->setPixmap(QPixmap::fromImage(image));
}


显示效果如下图所示:








评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值