视频直播app源码,保存和提取图片
视频直播APP源码,保存和提取图片的相关代码
#include "mainwindow.h"//源码来自
//How to Store and Retrieve Image on SQLite
//https://wiki.qt.io/How_to_Store_and_Retrieve_Image_on_SQLite
#include <QApplication>
#include <QtSql>
#include <QtWidgets>int main(int argc, char *argv[])
{QApplication a(argc, argv);// Set up databaseQString dbName("myDatabase.db3"); //默认路径在文件夹build-sqldemo-Desktop_Qt_5_12_9_MSVC2017_64bit-DebugQFile::remove(dbName); // delete sqlite file if it exists from a previous runQSqlDatabase db = QSqlDatabase::addDatabase("QSQLITE");db.setDatabaseName(dbName);db.open();QSqlQuery query = QSqlQuery(db);query.exec("CREATE TABLE IF NOT EXISTS imgTable ( filename TEXT, imagedata BLOB )");// Generate an image (in this case a screenshot) and store it in a QByteArrayQScreen *screen = a.primaryScreen();QPixmap inPixmap = screen->grabWindow(0);QByteArray inByteArray;QBuffer inBuffer(&inByteArray);inBuffer.open(QIODevice::WriteOnly);inPixmap.save(&inBuffer, "PNG"); // write inPixmap into inByteArray in PNG format// Alternatively, load an image file directly into a QByteArray// QFile file("screenshot.png");// if (!file.open(QIODevice::ReadOnly)) return;// QByteArray inByteArray = file.readAll();// Insert image bytes into the database// Note: make sure to wrap the :placeholder in parenthesisquery.prepare("INSERT INTO imgTable (filename, imagedata) VALUES ('screenshot.png', :imageData)");query.bindValue(":imageData", inByteArray);if (!query.exec())qDebug() << "Error inserting image into table:\n"<< query.lastError();// Get image data back from databaseif (!query.exec("SELECT imagedata from imgTable"))qDebug() << "Error getting image from table:\n"<< query.lastError();query.first();QByteArray outByteArray = query.value(0).toByteArray();QPixmap outPixmap = QPixmap();outPixmap.loadFromData(outByteArray);db.close();// Display imageQLabel myLabel;myLabel.setPixmap(outPixmap);myLabel.show();//MainWindow w;//w.show();return a.exec();
}
打开文件,读取二进制数据
QFile file(fileName);
if (!file.open(QIODevice::ReadOnly)) return;
QByteArray byteArray = file.readAll();QSqlQuery query;
query.prepare("INSERT INTO imgtable (imgdata) VALUES (?)");
query.addBindValue(byteArray);
query.exec();
打开多个数据库
QString connName = "basedb"QSqlDatabase db ;if(QSqlDatabase::contains(connName)){//如已经打开这个数据库,直接调出这个数据连接db = QSqlDatabase::database(connName);}else //否则打开这个数据库,注意带上数据库名db = QSqlDatabase::addDatabase("QSQLITE",connName);
以上就是视频直播APP源码中,保存和提取图片的相关代码,更多内容欢迎关注之后的文章
本文转载自网络,转载仅为分享干货知识,如有侵权欢迎联系云豹科技进行删除处理
视频直播app源码,保存和提取图片相关推荐
- 视频直播APP源码开发iOS音频播放流程
视频直播APP源码开发iOS音频播放流程 概览 随着移动互联网的发展,如今的手机早已不是打电话.发短信那么简单了,播放音乐.视频.录音.拍照等都是很常用的功能.在iOS中对于多媒体的支持是非常强大的, ...
- 视频直播APP源码,通过css控制div内容展开更多/收起效果
视频直播APP源码,通过css控制div内容展开更多/收起效果 一. 实现思路 需要设置一个变量控制展开 / 收起效果 提前写好最高高度的class样式,超出这个高度多余内容会隐藏 只有在列表数据长度 ...
- 视频直播APP源码在安卓中推送SDK集成居然如此简单!
视频直播APP源码在安卓中推送SDK集成居然如此简单! 思维导图 详细步骤 下载 demo 我的师傅大鸟哥告诉我,集成各类 SDK 的第一步骤都是下载个 Demo,先把 Demo 跑起来看看是什么鬼. ...
- 视频直播app源码,动态发布功能模块代码
视频直播app源码中,不仅有"视频直播模块",还有"业务模块""消息模块"等等,其中,在动态发布功能里,选择图片后查看及删除的功能该怎么做呢 ...
- 视频直播app源码,底部动画导航栏
视频直播APP源码实现底部导航栏并点击切换页面可简述为有三种方式 TabBar + TabBarView BottomNavigationBar + BottomNavigationBarItem 自 ...
- 视频直播app源码直播弹幕系统如何实现
视频直播app源码直播弹幕系统如何实现 直播弹幕指直播间的用户,礼物,评论,点赞等消息,是直播间交互的重要手段.美拍直播弹幕系统从 2015 年 11 月到现在,经过了三个阶段的演进,目前能支撑百万用 ...
- 视频直播app源码,实现一个展开和关闭的动画效果
视频直播app源码,实现一个展开和关闭的动画效果 <template><div><el-button @click="changeShow(true)" ...
- 直播软件开发IOS直播客户端SDK,视频直播APP源码【开源】
当前视频直播非常火爆,手机端的视频直播也非常火爆,PGC.UGC的视频直播门槛都降低了很多. 本文介绍一个:IOS 客户端直播的SDK,代码完全开源. 直播时代:让IOS普通开发者一天内做出一个RTM ...
- 视频直播系统源码,保存平台视频内容到本地
视频直播系统源码,保存平台视频内容到本地 首先,动态获取权限,非常重要 //在进入主页面时动态获取(记得在清单文件中添加) if(Build.VERSION.SDK_INT >= Build.V ...
- 视频直播系统源码,简单计时器
视频直播系统源码,实现简单计时器相关的代码 布局 <?xml version="1.0" encoding="utf-8"?> <androi ...
最新文章
- MySQL面试题 | 附答案解析(十七)
- 自动化网络拓扑 包容多设备类型——湖南省高速公路邵怀高速公路建设开发有限公司...
- MySLQ排序后标记排行
- 2019\National _C_C++_C\试题 C: 平方拆分
- python自动化办公知识点整理汇总_Python自动化办公知识点整理汇总
- rk3188开机失败(ump_file_open() 251)
- linux 解压tar.jz,linux系统压缩文件和解压缩命令
- java $表示什么_java – 变量名中$的含义是什么?
- Java Vistor 设计模式
- BicycleGAN详解与实现
- Regsvr32命令的使用
- Opencv实现的简易绘图工具
- 终于搞清楚了:java的long的小l和大L区别
- 创建oracle自增序列
- android后台前台切换,Android 把后台应用切换到前台
- 计算机室教师使用制度,[最新]教师计算机室管理制度
- VS同一个解决方案中不同项目相互引用问题
- HTML图片上传服务器
- 百度图神经网络7日打卡营--DAY01前半部分 总结
- 轮廓线扫描算法:Theo Pavlidis' Algorithm