Qt QImage和QPixmap使用与区别

 更新时间:2024年03月11日 11:47:00   作者:qq_1410888563  
Qt中QImage类封装了对于一般图像像素级的操作,图像显示则使用QPixmap,本文主要介绍了Qt QImage和QPixmap使用与区别,具有一定的参考价值,感兴趣的可以了解一下

重点:

1.QPixmap主要用于在界面上显示图像,它可以对图像进行缩放,可以加载BMP、JPG、PNG等格式的图片文件,然后在 OLabel组件上显示图像。

2.QImage可以读取BMP、JPG、PNG 等格式的图片件,存储图像中所有像素的颜色数据。QImage的接口函数可以实现图像的缩放、旋转、镜翻转等简单处理,可以转换颜色数据格式。因为QImage可以读写图像中每个像素的颜色数掘所以结合图像处理算法,我们可以对图像进行各种处理,例如调整亮度、调整对比度、模糊处理等。

QImage转换数据并采用QPixmap显示

void MainWindow::on_btnFormatConvert_clicked(QString fileName)
{//图像格式转换
    QImage m_image;
    m_image.load(fileName);       //从当前文件重新载入
    int index=ui->comboFormat->currentIndex();
    if (index ==0)
        m_image.convertTo(QImage::Format_RGB16);      //RGB565
    else if (index ==1)
        m_image.convertTo(QImage::Format_RGB888);     //RGB888
    else if (index ==2)
        m_image.convertTo(QImage::Format_RGB32);      //RGBx888
    else if (index ==3)
//        newImage = image.convertToFormat(QImage::Format_Grayscale8);        //不改变原图
//    newImage = image.convertedTo(QImage::Format_Grayscale8);        //不改变原图像
        m_image.convertTo(QImage::Format_Grayscale8); //8位灰度
    else if (index ==4)
        m_image.convertTo(QImage::Format_Grayscale16);//16位灰度
    else if (index ==5)
        m_image.convertTo(QImage::Format_Indexed8);   //8位索引
    else
        return;

    QPixmap  pixmap=QPixmap::fromImage(m_image);      //刷新界面的图像显示
    ui->labPic->setPixmap(pixmap);
}

两者相互转换

QImage image = pixmap.toImage();
QPixmap pixmap = QPixmap::fromImage(image);

到此这篇关于Qt QImage和QPixmap使用与区别的文章就介绍到这了,更多相关Qt QImage QPixmap内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家! 

相关文章

  • C语言详解实现字符菱形的方法

    C语言详解实现字符菱形的方法

    字符菱形是指给定一个字符,用它构造一个对角线长5个字符,倾斜放置的菱形。输入输入只有一行, 包含一个字符。输出该字符构成的菱形
    2022-04-04
  • C++中静态库与动态库的使用示例

    C++中静态库与动态库的使用示例

    在C/C++中使用库的技术,库主要分为两种类型:静态库和动态库,本文主要介绍了C++中静态库与动态库的使用示例,具有一定的参考价值,感兴趣的可以了解一下
    2023-09-09
  • QT实现简单计算器功能

    QT实现简单计算器功能

    这篇文章主要为大家详细介绍了QT实现简单计算器功能,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2022-04-04
  • 使用C语言实现珠玑妙算Mastermind小游戏

    使用C语言实现珠玑妙算Mastermind小游戏

    这篇文章主要介绍了使用C语言实现珠玑妙算Mastermind小游戏,这是一款益智类多人游戏游戏,非常有趣,需要的朋友可以参考下
    2023-03-03
  • C语言字符函数中的isalnum()和iscntrl()你都知道吗

    C语言字符函数中的isalnum()和iscntrl()你都知道吗

    这篇文章主要为大家详细介绍了C语言字符函数中的isalnum()和iscntrl(),文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2022-02-02
  • C语言深入探究自定义类型之结构体与枚举及联合

    C语言深入探究自定义类型之结构体与枚举及联合

    今天我们来学习一下自定义类型,自定义类型包括结构体、枚举、联合体,小编觉得挺不错的,现在就分享给大家,也给大家做个参考
    2022-05-05
  • C语言模拟实现通讯录程序过程

    C语言模拟实现通讯录程序过程

    这篇文章主要介绍了C语言模拟实现通讯录程序过程,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习吧
    2023-02-02
  • 带你了解C++初阶之引用

    带你了解C++初阶之引用

    这篇文章主要为大家介绍了C++初阶之引用,具有一定的参考价值,感兴趣的小伙伴们可以参考一下,希望能够给你带来帮助
    2022-01-01
  • C语言指针基础详解

    C语言指针基础详解

    这篇文章主要介绍了C语言指针的基础,主要对C语言中指针的本质及常见用法做了较为通俗易懂的分析,是后续深入学习C语言的基础,需要的朋友可以参考下
    2021-10-10
  • 利用QT实现UDP聊天小程序

    利用QT实现UDP聊天小程序

    这篇文章主要为大家详细介绍了润滑利用QT的UDP技术,实现两个QT程序之间的聊天程序。文中的示例代码讲解详细,感兴趣的小伙伴可以学习一下
    2022-11-11

最新评论