QT二进制读取图像文件并显示
Posted wxl845235800
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了QT二进制读取图像文件并显示相关的知识,希望对你有一定的参考价值。
打开对话框选择文件
二进制方式读取文件
转换成图像显示
void MainWindow::showImage() { //打开文件对话框 QString lastPath="D:/Englishpath/QTprojects/DATA/videoData"; fileName = QFileDialog::getOpenFileName(this,"OpenFile", lastPath); if(fileName.isEmpty()) { QMessageBox::information(this,"Error Message","Select File Failed"); return; } QFile file(fileName); if(!file.open(QIODevice::ReadOnly)) { QMessageBox::information(NULL,"失败提示","打开失败",QMessageBox::Ok,QMessageBox::Ok); return; } // QTextStream in(&file); // ui->textEdit->setText(in.readAll()); //类型转换为可以被ifstream使用的 QString str =fileName; char *s; QByteArray//QString转换为char* ba = str.toLatin1(); s = ba.data(); // [1]得到二进制数据; using std::ifstream; ifstream i_f_stream(s,ifstream::binary); i_f_stream.seekg(0, i_f_stream.end); int length = i_f_stream.tellg(); i_f_stream.seekg(0, i_f_stream.beg); char *buffer = new char[length]; i_f_stream.read(buffer, length);//一次性读取 i_f_stream.close(); // [2]缓存数据重构; QByteArray byteArray(buffer, length); // [3] 构建图片对象并载入二进制数据; QImage img; img.loadFromData(byteArray, "png"); // [4] 结果检测(将图片保存到某一目录、用label显示); img.save(QString("test.bmp"), "png"); ui->d_label->setPixmap(QPixmap::fromImage(img)); delete [] buffer; // QDataStream in(&file); // while( !in.atEnd()) // { // QByteArray s; // in >> s; // file.close(); // qDebug()<<s<<endl; // } }
【转账自】
std::ifstream以二进制方式读取图片文件,用Qt再将其转为图片(QImage::loadFromData()函数使用) - ypy9323的博客 - CSDN博客 https://blog.csdn.net/ypy9323/article/details/81835530
以上是关于QT二进制读取图像文件并显示的主要内容,如果未能解决你的问题,请参考以下文章
PyQt5 PyQt5安装及配置,从文件夹读取图片并显示,模拟生成素描图像
在 C# 中使用 QDataStream 读取在 QT 中创建的二进制文件
qt 读取一个txt文件,把里面的内容已二进制的方式存储到另一个文件里面。