QFile imageFile(qsFileName);//qsFileName为某一文件的路径
if (!imageFile.open(QIODevice::ReadOnly))//可读
{
return;
}
QByteArray Image = imageFile.readAll();
QImage bitm;
bitm.loadFromData(Image);//转换成QImage
QPixmap bmp;
bmp = QPixmap::fromImage(bitm);//转换成QPixmap
QLabel* pPicLabel = new QLabel(this);
pPicLabel ->setPixmap(m_pixmap);//Set 进Label,进行可视化
QImage与QPixmap的区别
1、QPixmap依赖于硬件
首先需要知道的是QPixmap的具体实现是依赖于系统的。在Symbian系统上QPixmap是被存放在Server端的。 目前的Qt会把QPixmap都存储在graphics memory中,这明显是依赖硬件的。那么Qt为什么要这么做呢?很简单,设计之初QPixmap就是用来加速显示的,例如我们在paint的时候用QPixmap就会比用其他类的效果好许多。
2、和QPixmap 不同,QImage是独立于硬件的,它可以同时被另一个线程访问。QImage是存储在客户端的,对QImage的使用是非常方便和安全的。 又由于 QImage 也是一种QPaintDevice,因此我们可以在另一个线程中对其进行绘制,而不需要在GUI 线程中处理,使用这一方式可以很大幅度提高UI响应速度。 因此当图片较大时,我们可以先通过QImage将图片加载进来,然后把图片缩放成需要的尺寸,最后转换成QPixmap 进行显示(图像较大时的推荐方案)。