【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(, i_f_stream.end);
int length = i_f_stream.tellg();
i_f_stream.seekg(, 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】二进制读取图像文件并显示的更多相关文章
- 【QT】二进制读取图像文件测试
QDataStream in(&file); int n; in >> n ; file.close(); qDebug() << n<<"en& ...
- Qt flash_eraseall nandwrite 进度条显示擦除、烧录
/***************************************************************************** * Qt flash_eraseall n ...
- Python 读取图像文件的性能对比
Python 读取图像文件的性能对比 使用 Python 读取一个保存在本地硬盘上的视频文件,视频文件的编码方式是使用的原始的 RGBA 格式写入的,即无压缩的原始视频文件.最开始直接使用 Pytho ...
- OK335xS tmp75 Qt 温度读取
/******************************************************************* * OK335xS tmp75 Qt 温度读取 * 说明: * ...
- FileReader对象的readAsDataURL方法来读取图像文件
FileReader对象的readAsDataURL方法可以将读取到的文件编码成Data URL.Data URL是一项特殊的技术,可以将资料(例如图片)内嵌在网页之中,不用放到外部文件.使用Dat ...
- 使用FileReader对象的readAsDataURL方法来读取图像文件
使用FileReader对象的readAsDataURL方法来读取图像文件 FileReader对象的readAsDataURL方法可以将读取到的文件编码成Data URL.Data URL是一项 ...
- 使用 Qt 获取 UDP 数据并显示成图片(2)
本文首发于 BriFuture 的 个人博客 在我的前一篇文章 使用 Qt 获取 UDP 数据并显示成图片 中,我讲了如何用 Python 模拟发送数据,如何在 Qt 中高效的接收 UDP 数据包并将 ...
- 转载:使用FileReader对象的readAsDataURL方法来读取图像文件
文章转载自:http://blog.okbase.net/jquery2000/archive/1296.html: FileReader对象的readAsDataURL方法可以将读取到的文件编码成D ...
- 解析 Qt 字库移植并能显示中文 (下篇)
原文http://mobile.51cto.com/symbian-272563.htm 本文介绍的是Qt 字库移植并能显示中文,需要的字体库文件,一般是多个.具体移植那一个,看你使用的字库是什么了, ...
随机推荐
- Firefox 被Snap.do 劫持
Firefox IE 被劫持 windows的控制面板,卸载程序, 找任何跟「Snap.do」有关的软件,找到後先移除「Snap.Do Engine」再移除「Snap.Do」. 注册表里查找 Snap ...
- Cardboard Talk02 Accelerometer
操作系统:Windows8.1 显卡:Nivida GTX965M 开发工具:Android studio 3.0.0 | Cardboard 1.0 在深入讨论具体实现之前,有必要了解一下Andro ...
- 解决SQL将varchar值转换为数据类型为int的列时发生语法错误
今天遇到一个这样的错误,具体的报错情况如下 解决的方案如下. 数据库MSSQL在比较大小时,出错提示:“将 varchar 值 '24.5' 转换为数据类型为 int 的列时发生语法错!”分析数据库设 ...
- win10如和设置远程桌面
最近几天一直在搞远程桌面问题,电脑一直连不上远程,今天终于出来了. 前提前提 条件,要电脑允许Administrator用户,先把电脑切换到那个用户,然后进行下面操作. 1.在桌面,我的电脑图标,鼠 ...
- 47. Permutations II (Back-Track, Sort)
Given a collection of numbers that might contain duplicates, return all possible unique permutations ...
- mysql 求2个坐标之间的距离
CREATE DEFINER=`root`@`%` FUNCTION `f_GetDistance`(lng1 DOUBLE,lat1 DOUBLE,lng2 DOUBLE,lat2 DOUBLE) ...
- 用 AutoHotKey 随时记录所想
别被标题咋呼了,其实很简单,按下快捷键自动打开指定文本文档,自动加上当前时间日期,适合像我这种无聊的人记录生活. ;Alt+X 调出 !X:: ;获取当前日期时间并保存到剪贴板 d = @rhinoc ...
- new Class{}形式
先看下面代码 Test.java public class Test { public static void main(String[] args) { A a=new A() { @Overrid ...
- JAVA获取时间的方式
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 ...
- Spring boot 、mybatis 和 swagger 整合
文件路径 添加依赖 <?xml version="1.0" encoding="UTF-8"?> <project xmlns="h ...