老狼的专栏

工作中展现自我,学习中完美自我,生活中乐活自我!

  • 博客(489)
  • 资源 (20)
  • 收藏
  • 关注

原创 TightVNC H264编解码(一)

经过尽二个月的不断摸索,TightVNC终于支持H264编解码了,前期真正编写H264编解码器只花了一周左右时间,但是测试发现效果并不是太理想(帧率太低,延迟大),这大概是所有远程控制软件要处理的通病吧。作为一位经验丰富的程序员,造成这种问题的原因,有以下几点:1、抓屏?2、H264编码?3、TCP网络发送?4、H264解码?5、视频渲染?为了排除到底哪个环节出了问题,看来不摸透底层事务流程是行不通的,不得已摸透代码画出了下面这个简陋的流程图。Server端事务处理流程图.

2021-12-31 21:25:36 1440 6

原创 QT HttpServer

资源从网上收集,包含httpserver、sslserver、http-parser三个模块,解决了编译过程中由于路径引用错误问题。下载链接:https://download.csdn.net/download/u012156872/20664799,下载编译即可应用到自己项目中,简单快速,不用造车。...

2021-07-31 11:57:38 809

原创 QT 界面设计篇(水波纹进度条QProgressBarWater)

效果图:头文件声明(QProgressBarWater.h):#ifndef QPROGRESSBARWATER_H#define QPROGRESSBARWATER_H#include <QWidget>#include <QPainter>#include <QPaintEvent>class QProgressBarWater : public QWidget{ Q_OBJECTpublic: explic.

2020-11-30 19:23:48 1601

原创 EasyPR编译指南

1、下载源码https://github.com/liuruoze/EasyPRDownloadZIP或者git(https://github.com/liuruoze/EasyPR.git)将代码解压到硬盘目录下。例如F:\车牌识别\EasyPR(车牌识别)\EasyPR2、双击解决方案文件EasyPR.sln,用VSIDE(这里使用VS2019)打开,提示点击确定。3、选择libeasypr项目,编译出现如下错误这是因为没有配置OpenCV环境所致。4、...

2020-08-02 18:09:09 3156 6

原创 QT 无标题栏窗口的拖动和拉伸

如下2种方案,2种方案都不完美(拉伸窗口都会抖动),但是如果一定要使用,强烈推荐第1种方案(可减小拉伸时窗口抖动)

2023-12-14 01:55:47 438

原创 C++ libVNC开源库

VNC具体用途,不用过多介绍了。如果需要实时更新服务器端画面,while循环就可以了。

2023-12-11 14:31:20 479

原创 QT QCefView自编译

6、回到QCefView目录,执行批处理generate-win-x86_64.bat即可,出现如下信息表示生成成功。5、设置QT版本,修改配置文件QCefView/cmake/QtConfig.cmake,如下。4、请根据对应的版本修改编译文件CefViewCore/CMakeLists.txt,如下。2、下载QCefViewCore,放到QCefViewCore目录下,地址。请注意最新版本兼容性可能存在问题,我下载的版本是。1、下载QCefView,地址。3、下载Cef库文件,地址。

2023-12-09 12:18:20 466

原创 Ubuntu 配置共享文件夹

安装虚拟机经常会遇到已经共享了文件夹,但是就是找不到目录文件,搜集网上资料,汇总一下指令,留作以后备用吧:vmware-hgfsclient在文件最后一行添加如下内容:

2023-10-26 15:13:32 226

原创 C++ OleDB数据库驱动(MySql驱动姊妹篇)

这里只介绍OelDB调用数据的方法。OleDB因为兼容ODBC和ADO,所以受大众追捧。大家也都非常熟悉了,这里就直接上代码吧。

2023-10-11 08:26:00 215

原创 Visual Assist X插件安装失败总结

2、安装成功以后,却显示插件无法启用,或者是插件启动了,但是实则没有启动,看不到插件选项。1、如果是运行VA_X_SETUP.exe无反应,无法启动,请右键属性,修改兼容模式。3、此时重启应该就正常了。

2023-09-27 11:09:07 814

原创 常用时间日期格式符号定义

编程过程中经常会用到时间日期格式化,这里是一些常见的日期时间格式字符定义的列表:年份:yyyyyy月份:MMMMMM天数:ddd小时:hhh分钟:mmm秒数:sss毫秒:zzzz星期几:dddddddAP时区:t。

2023-09-27 09:22:42 1537

原创 C++ linux下使用X11实现屏幕截图(续)

使用libpng库将XGetImage获取到的内容保存为PNG格式的文件。

2023-09-18 23:48:19 220

原创 C++ MFC中如何根据不同文件编码格式读取和显示文件内容

这里假设VC++的字符集编码格式是Unicode,要显示的文本内容是strResult。上一篇,介绍了写文件,这一篇我要介绍的如何读取文件内容并显示出来。3、读取unicode-le编码格式的文本文件。4、读取unicode-be编码格式的文本文件。2、读取utf-8编码格式的文本文件。1、读取ANSI编码格式的文本文件。

2023-09-17 21:45:02 668

原创 C++ MFC中如何根据不同文件编码格式创建和写文本内容

这里假设VC++的字符集编码格式是Unicode,要写入的文本内容是m_strTEXT。3、保存unicode-le编码格式的文本文件。4、保存unicode-be编码格式的文本文件。2、保存utf-8编码格式的文本文件。1、保存ANSI编码格式的文本文件。

2023-09-17 21:32:35 442

原创 C++ COM接口调用

那如果这个dll更新特频繁,每次都需要反注册,再重新注册,似乎有那么一点点的烦人哦。既然COM组件也是一种库文件,那有没有一种调用方法,像调用动态链接库那样先加载,再寻址,最后调用呢?代码虽然复杂很多,但是目的我们是达到了,庆祝一下吧!前提条件:COM是VSC++编写的,先引用头文件。

2023-09-14 13:02:03 298

原创 C++ OSD水印叠加

视频相关领域(监控、LED大屏)很多场合可能会涉及到在一幅画面上进行文字或时间的叠加,常规做法都是在后端实现,即先渲染图像,然后叠加OSD文字信息,这种方法简单且高效。但是有些场合必须要求在前端进行叠加,比如监控领域中视频名称信息、时间信息等这些都需要在前端图像编码的时候就已经叠加到图像上,以防止用户修改和验伪。示例中采用jpeg图像作为底图,所以需要借助libjpeg将图像解码还原RGB原始图像数据,叠加OSD文字信息需借助freetype生成点阵RGB图像数据,然后对2个图像进行像素合并或重写。

2023-09-06 13:49:38 399

原创 C++ MySql驱动

5. 扩展性:MySQL支持水平扩展和垂直扩展,可以方便地增加或减少服务器的数量、内存和存储容量,以满足不断增长的需求。8. 社区支持:MySQL拥有庞大的开源社区,用户可以通过社区获取帮助、分享经验和参与开发,获得及时的技术支持。6. 兼容性:MySQL遵循SQL标准,与其他常见的数据库系统兼容,能够无缝迁移和集成现有的数据和应用程序。4. 高性能:MySQL采用了多种优化策略和技术,如索引、缓存、分区等,以提供快速的读写操作和响应时间。

2023-09-06 13:36:54 255

原创 C++ FTP简单客户端

(此代码运行在linux系统上,如需支持windows系统,需对头文件稍作修改。

2023-09-06 12:27:16 246

原创 QGIS 点位标注(续)

在上一篇中,我们图层所有的点位图标都是一样的,但是实际应用中可能每个点位所对应的图标确是不一样的,例如城镇里面的医院、超市、学校等等,都需要用不同的图标来进行标注。

2023-08-29 23:14:20 150

原创 QGIS 点位标注

已知点的经纬度信息,将点添加到地图中,并用指定的图标标注显示出来。思路很简单:首先创建一个图层,然后图层添加点位信息,最后设置该图层点位信息所关联的图标(注意这里图层所有的点位图标都是一样的)

2023-08-29 23:13:59 1252

原创 C++ Qt实现拦截自身键盘事件

【代码】C++ Qt实现拦截自身键盘事件。

2023-08-24 09:44:39 352

原创 C++ Qt拦截系统键盘(Windows)

【代码】C++ Qt拦截系统键盘(Windows)

2023-08-24 09:41:47 308

原创 C++ Windows上键盘拦截

如果是键盘拦截,需要将KeyboardHookCallback函数事件进行处理,接收消息以后直接返回,而不是将事件传递给下一个钩子或默认过程。如果是仅仅拦截某个进程键盘事件,只需要修改SetWindowsHookEx第3、4个参数即可。

2023-08-24 09:38:30 225

原创 C++ Boost写一个简单的HttpServer文件下载服务器

如果需要在文件下载的响应头中包含文件名,可以添加一个Content-Disposition标头字段。

2023-08-05 00:09:03 316

原创 MSYS2+MinGW编译SDL2静态库

这将编译SDL2并将其安装到MSYS2的默认路径/home/Administrarot/install/SDL2中。2、下载SDL2源代码:从SDL2的官方网站(1、安装MSYS2:从MSYS2的官方网站(

2023-07-27 08:48:14 402

原创 MSYS2+MinGW编译ffmpeg库

vcpkg采用VS编译器编译ffmpeg可以顺利通过,但是使用MinGW编译器编译ffmpeg存在报错问题。于是打算采用msys2环境下重新对ffmpeg进行编译。2、下载并解压ffmpeg源码(我这里msys2安装目录是G:\msy264)4、进入ffmpeg目录,执行指令对ffmpeg编译环境进行配置。5、配置完ffmpeg,执行指令即可完成。3、打开msys2。

2023-07-26 11:10:14 372

原创 C++ 使用SDL显示RGB图像数据

4、创建一个SDL_Texture对象,并从表面复制数据到纹理中。3、创建一个SDL_Surface对象,用于存储RGB图像数据。2、创建一个SDL窗口和渲染器对象,以便在屏幕上显示图像。5、清空渲染器,并将纹理复制到渲染器中。1、包含必要的头文件。

2023-07-25 08:02:07 490

原创 C++ ffmpeg+SDL音视频播放封装类

示例中展示了音频播放的2种思路,一种是回调,另外一种直接通过SDL_QueueAudio直接写入音频数据。目前类的封装还不够完美,并没有考虑音视频同步播放的问题。如果要考虑音视频同步,建议参考ffplay.c源码进行修改。1、包含必须的头文件。

2023-07-24 16:34:25 226

原创 QT 使用ffmpeg+QOpenGLWidget进行图像渲染

采用OpenGL渲染图像,相比传统的QImage效率着实要高很多。1、包含必须的头文件。

2023-07-22 08:57:11 703

原创 QT 使用ffmpeg播放音视频文件/网络资源

1、将播放功能进行封装。

2023-07-21 16:55:32 870 2

原创 C++ linux下使用X11实现屏幕截图

以上代码为单张图片截取方式,如果要实现连续截图(如共享桌面),这种方式效率极低。函数从根窗口中获取图像数据。你可以根据需要对该图像数据进行处理,例如保存为文件或者进行其他图像操作。与之前的示例程序相比,主要区别在于使用了XShm相关函数来创建共享内存段和进行屏幕截图。函数创建一个共享内存图像,并将其关联到根窗口的属性中。函数创建一个共享内存段,并将其附加到图像数据上。函数将共享内存附加到X服务器,并调用。函数将共享内存从X服务器分离,并使用。函数将共享内存从当前进程分离,通过。

2023-07-20 11:40:42 827 4

原创 C++ 使用ffmpeg将本地视频推送到远程服务器

来启用编码延迟的低延迟标志。这有助于减少编码的延迟。1、包含必须的头文件。在上述代码中,设置了。

2023-07-19 10:24:03 457

原创 C++ 使用ffmpeg+SDL播放音视频文件(续)

1、包含必须的头文件。

2023-07-19 01:34:00 213

原创 C++ 使用vlc+SDL播放音视频文件

1、包含必须的头文件。

2023-07-19 01:26:06 182

原创 C++ 使用ffmpeg播放音视频文件

1、包含必须的头文件。

2023-07-19 01:02:10 895

原创 C++ FFmpeg连接远程摄像机

【代码】C++ FFmpeg连接远程摄像机。

2023-07-18 19:16:25 241

原创 C++ 利用Tesseract进行文字识别

【代码】C++ 利用Tesseract进行文字识别。

2023-07-18 10:23:39 1713 2

原创 C++ 利用Paddle进行文字识别

【代码】C++ 利用Paddle进行文字识别。

2023-07-18 10:21:16 366

原创 C++ OpenGL显示YUV图像数据

2、创建一个窗口并进行OpenGL上下文初始化。1、包含OpenGL的头文件和库。4、加载YUV图像数据到纹理中。3、定义顶点和纹理坐标的数组。5、清空缓冲区,并绘制纹理。6、刷新缓冲区,显示图像。7、释放资源和上下文。

2023-07-16 08:17:52 282

原创 C++ 使用SDL显示YUV图像数据

3、创建一个SDL_Texture对象,用于存储YUV图像数据。2、创建一个SDL窗口和渲染器对象,以便在屏幕上显示图像。5、清空渲染器,并将纹理复制到渲染器中。4、YUV数据填充到纹理中。

2023-07-16 07:52:03 284

Microsoft TTS语音修复

工具只要是针对市面上很多简化版操作系统,由于缺少(未注册)语音库文件,无法支持语音播放功能。

2022-06-24

QTHttpServer.zip

该源码从网上收集,解决了编译过程中遇到的疑难问题,可直接编译使用。

2021-07-31

layoutmgr.rar

VC++(MFC),UI布局管理器。功能类似QT的QLayout

2021-05-31

live555-windows.rar

VS2017编译通过,版本2021-05-17。X86和X64位。源码+库文件。

2021-05-31

SEAL3.4.5.rar

全同态加密算法,比较老的一个版本了。没有依赖太多的第方库,编译简单,适合初学者。

2021-05-31

VC++/Delphi下可用的GIS控件MapWinGIS(ocx)

基于MapWinGisv5.2.4.0 源码(自带第3方库)编译,扩展百度、高德等常用栅格图层。VS2019下可编译。

2021-03-31

GLFW v3.4库文件

GLFW v3.4编译库文件glfw3.lib(x86、x64)

2021-03-01

海康摄像机视频存储服务器

轻量级免费版海康摄像机视频存储服务器,附操作手册(无源码)

2021-03-01

MapWinGis第3方库

该资源是针对VS2019版编译所需要的第3方库文件,包括GDAL_SDK、curllib、geos、tiff等。压缩包直接解压到源码的support目录下使用。

2021-01-25

TS流封装(live555+faac).rar

使用live555的testRTSPClient来进行网络实时流获取,采用H264+AAC文件方式封装ts流文件。

2020-08-29

libzdb-3.2.2.zip

跨平台数据库访问连接池。基于最新版libzdb编译,编译工具是VS2019。自带Sqlite、Mysql和SqlServer库,Postgresql和Oracle未测试。

2020-08-18

电脑桌面录制工具(GIF文件).rar

VC++实现对Windows桌面的录制,并生成GIF动画文件。支持桌面文字书写、以及基本的画图操作等。

2020-05-27

HTTP网络文件服务器(Delphi版)

Http File Server。HFS网络文件服务器是专为个人用户所设计的HTTP档案文件传输系统,整套程序只有一个exe,运行方便。附件:源码。

2020-03-25

C++读写Excel文件

OpenXLSX是一套开源的读、写、创建、修改Excel文件(格式:xlsx)的C++库。附件内容:源码+示例。

2020-03-25

EasyRP车牌识别接口封装

EasyPR开源车牌识别库,源码里面仅仅是将EasyPR的Demo进行简单封装,导出为dll接口文件,方便项目使用。

2020-03-25

炫彩界面库源码(VC++)

炫彩界面库是基于DirectUI设计思想的一套界面库,接口全面,使用也非常方便,源码属早期版本(v1.5.1),仅供学习使用,现免费共享出来。

2020-03-25

ZIP包格式压缩/解压缩

简单易用的ZIP包格式压缩/解压缩源码文件,仅支持传统加密/解压方式。主类:CZipImplement,接口Zip_PackFiles、Zip_UnPackFiles、Zip_GetPackData。

2019-12-31

金涵电子LED控制卡系统

定制化合肥金涵电子LED控制卡系统,在官方标准版基础上,基于v5.2版开发包协议,扩展了事件管理功能(支持任意条事件)。

2019-12-18

工程制图软件

多年前的程序了,适合初学者。纯Delphi7版,无任何第3方控件库。可绘制直线、矩形、圆、弧线。支持图像移动、距离测量、删除、放大、缩小、旋转等功能。支持图像保存和打开。

2018-06-12

VC++简单画图

一款简单的画图程序,实现了直线、圆、方形基本图形的绘制,可设定线条颜色、大小和填充颜色。绘制图像可保存、打开。

2018-06-12

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除