自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(49)
  • 资源 (6)
  • 收藏
  • 关注

转载 FreeType2使用总结

一、FreeType2简介1. 是一个免费、开源、可移植且高质量的字体引擎;2. 支持多种字体格式文件,并提供了统一的访问接口;3. 支持单色位图、反走样位图渲染,这使字体显示质量达到Mac的水平;4. 采用面向对象思想设计,用户可以灵活的根据需要裁剪。 二、FreeType2字形约定2.1 基本概念字形:  字符映像叫做字形,单个字符能够有多个不同的映像,即多...

2018-11-30 10:33:14 17426

原创 FFmpeg + SDL的视频播放器的制作(6)

FFmpeg + SDL的视频播放器的制作(6) FFmpeg和SDL的整合实现视频播放脱离开发环境的独立播放器/** * 最简单的基于FFmpeg的视频播放器2(SDL升级版) * Simplest FFmpeg Player 2(SDL Update) * * 雷霄骅 Lei Xiaohua * leixiaohua1020@126.com * 中国传媒大学/数字...

2018-11-23 17:04:09 227

原创 FFmpeg + SDL的视频播放器的制作(5)

FFmpeg + SDL的视频播放器的制作(5) SDL函数进阶练习窗口可以移动窗口可以调整大小 /** * 最简单的SDL2播放视频的例子(SDL2播放RGB/YUV) * Simplest Video Play SDL2 (SDL2 play RGB/YUV) * * 雷霄骅 Lei Xiaohua * leixiaohua1020@126.com ...

2018-11-22 17:11:17 207

原创 FFmpeg + SDL的视频播放器的制作(4)

FFmpeg + SDL的视频播放器的制作(4) SDL的函数和数据结构二倍速度二倍宽度窗口大小固定为500X500视频周围包围10像素的“黑框”换一段测试YUV素材进行播放 示例程序:/** * 最简单的SDL2播放视频的例子(SDL2播放RGB/YUV) * Simplest Video Play SDL2 (SDL2 play RGB/YUV) ...

2018-11-22 16:47:28 177

原创 FFmpeg + SDL的视频播放器的制作(3)

 FFmpeg + SDL的视频播放器的制作(3) ffmpeg解码的函数和数据结构实例程序运行:simplest_ffmpeg_decoder.cpp/** * 最简单的基于FFmpeg的解码器 * Simplest FFmpeg Decoder * * 雷霄骅 Lei Xiaohua * leixiaohua1020@126.com * 中国传媒大学/数字电视技术...

2018-11-22 15:33:42 160

原创 FFmpeg + SDL的视频播放器的制作(2)

FFmpeg + SDL的视频播放器的制作(2) 码率:1秒中的数据量,越高,视频质量越好,100k。帧率:每秒传输的帧数(fps),5。  ffplay.exe用于视频播放...

2018-11-21 09:26:33 137

原创 FFmpeg + SDL的视频播放器的制作(1)

FFmpeg + SDL的视频播放器的制作(1) FFmpeg:视音频解码SDL:视频显示合起来就是播放器。  封装格式:MP4,RMVB,TS,FLV,AVI视频编码数据:H.264,MPEG2,VC-1音频编码数据:AAC,MP3,AC-3视频像素数据:YUV420P,RGB音频采样数据:PCM  播放一个视频文件的流程如下所示:...

2018-11-20 20:46:31 236

原创 朱有鹏 一个真正的网络通信socket的项目(8)

朱有鹏  一个真正的网络通信的项目(8) 流程:1、定义客户端和服务器之间的通信规律2、定义客户端和服务器之间的通信数据结构3、通过使用这个数据结构,客户端和服务器之间进行收发,不断地交换信息,传递信息 下面的代码就是一个模板,可以在它的基础上不断地叠加,做很多项目。譬如,客户端和服务器交换图象信息的程序,客户端向服务器发出一个命令:我要浏览所有的图片,服务器向客户端传...

2018-11-20 16:14:18 423

原创 朱有鹏 socket实际编程3(7)

朱有鹏 socket实际编程3(7) (1)客户端和服务器原则上都可以任意的发和收,但是实际上双方必须配合:client发的时候server就收,而server发的时候client就收(2)必须了解到的一点:client和server之间的通信是异步的,这就是问题的根源(3)解决方案:依靠应用层协议来解决。说白了就是我们server和client事先做好一系列的通信约定  ...

2018-11-20 16:04:03 216

原创 朱有鹏 socket实际编程2(6)

朱有鹏 socket实际编程2(6) client.c#include <stdio.h>#include <sys/types.h>#include <sys/socket.h>#include <arpa/inet.h>#include <string.h>//客户端是自动分配端口号#define SERA...

2018-11-20 10:30:53 200

原创 朱有鹏 socket实际编程1(5)

朱有鹏 socket实际编程1(5) 服务器端程序编写(1)socket(2)bind(绑定)把当前电脑的IP地址、端口号和socket绑定一起。(3)listen(监听)(4)accept,返回值是一个fd,accept正确返回就表示我们已经和前来连接我的客户端之间建立了一个TCP连接了,以后我们就要通过这个连接来和客户端进行读写操作,读写操作就需要一个fd,这个fd...

2018-11-19 16:18:13 175

原创 C语言 输出参数 和 输入参数const

输入参数就是函数运算需要的数据,输出参数就是运算结果 stringcopy(char *a,const char *b)是一个字符串的拷贝函数b是拷贝的原字符串,即输入参数,给b前面加const 是为了不让函数内部改动b的值,起到一个保护作用。a是需要拷贝的字符串,即输出参数。整个函数其实就是将b的值复制给a。const是常量的标志,可以防止某些变量被非法更改,在高效的编程...

2018-11-19 16:12:10 1692

原创 朱有鹏 IP地址格式转换函数实践(4)

朱有鹏 IP地址格式转换函数实践(4) 使用man inet_addr可以看使用说明 (1)inet_addr(只兼容IPv4)、inet_ntoa、inet_aton (2)inet_pton(兼容IPv4、IPv6)、inet_ntop(兼容IPv4、IPv6)  inet_addr:#include <stdio.h>#include ...

2018-11-19 14:26:02 185

原创 朱有鹏 socket编程接口介绍(3)

朱有鹏 socket编程接口介绍(3) 建立连接socket(man 2 socket)socket()函数类似于open()函数,用来打开一个网络连接,如果成功则返回一个网络文件描述符(int类型),之后我们操作这个网络连接都通过这个网络文件描述符。#include <sys/socket.h>int socket(int domain, int type, i...

2018-11-18 17:30:35 196

原创 朱有鹏 TCP协议(2)

朱有鹏 TCP协议(2) TCP的三次握手(1)建立连接需要三次握手(2)建立连接的条件:服务器listen(监听)时,客户端主动发起connect(连接) TCP的四次握手(3)关闭连接需要四次握手(4)服务器或者客户端都可以主动发起关闭注:这些握手协议已经封装在TCP协议内部,socket编程接口平时不用管 基于TCP通信的服务模式(1)具有公网...

2018-11-18 14:38:14 267

转载 TCP协议中的三次握手和四次挥手(图解)

https://blog.csdn.net/whuslei/article/details/6667471建立TCP需要三次握手才能建立,而断开连接则需要四次握手。整个过程如下图所示:先来看看如何建立连接的。【更新于2017.01.04 】该部分内容配图有误,请大家见谅,正确的配图如下,错误配图也不删了,大家可以比较下,对比理解效果更好。这么久才来更新,抱歉!!错误配图如下...

2018-11-18 14:08:44 226

原创 朱有鹏 TCP协议(1)

朱有鹏 TCP协议(1) 关于TCP(1)TCP协议工作在传输层,对上服务socket接口,对下调用IP层API调用TCP工作的,TCP调用IP工作的。(2)TCP协议面向连接,通信前必须先3次握手建立连接关系后才能开始通信。在通信之前,必须建立一个连接。(打电话)(3)TCP协议提供可靠传输,不怕丢包、乱序等。TCP协议就是一堆代码,这堆代码实现一个协议。 ...

2018-11-16 20:13:32 189

原创 网络通信基础知识(5)--- IP地址

网络通信基础知识(5) IP地址分类(IPv4)(1)IP地址实际是一个32位二进制构成,在网络通信数据包中就是32位二进制,而在人机交互中使用点分十进制方式显示。源地址:发出数据包的网络的IP地址目的IP地址:要接受数据包的计算机的IP地址 二进制方式   0xffffffff 0xC0A80166 (本质) 点分十进制方式 25...

2018-11-16 11:23:42 651

原创 网络通信基础知识(4)--- DHCP,NAT

网络通信基础知识(4) DHCP(dynamic host configuration protocl,动态主机配置协议)(1)每台计算机都需要一个IP地址,且局域网内各电脑IP地址不能重复,否则会地址冲突。(2)计算机的IP地址可以静态设定,也可以动态分配(3)动态分配是局域网内的DHCP服务器来协调的,很多设备都能提供DHCP功能,譬如路由器。(4)动态分配的优势:方便...

2018-11-16 09:46:53 310

原创 网络通信基础知识(3)--- 路由器,DNS

路由器(1)路由器是局域网和外部网络通信的出入口(2)路由器将整个internet划分成一个个局域网,却又互相连通。(3)路由器对内管理子网(局域网),可以在路由器中设置子网的网段,设置有线端口的IP地址,设置dhcp等,因此局域网的IP地址是路由器决定的。(4)路由器对外实现联网,联网方式取决于外部网络(如ADSL拨号上网、宽带账号、局域网等)。这时候路由器又相当于是更高层级网络...

2018-11-15 17:23:48 492

原创 网络通信基础知识(2)--- OSI,网卡,集线器,交换机

网络通信基础知识(2) 1、OSI 7层网络模型(1)7层名字和顺序要记住,有时候笔试题目经常遇到。物理层、数据链路层、网络层、传输层、会话层、表示层、应用层物理层:全硬件。数据链路层:半硬 件、半软件。(2)网络搜索资料,自己看自学,逐步去理解。 2、网卡(1)计算机上网必备硬件设备。网卡是一个芯片。CPU靠网卡来连接外部网络。(2)串转并设备(3...

2018-11-15 15:41:45 261

原创 网络通信基础知识(1)

网络通信基础知识(1) 网络通信的发展历程(1)单击阶段(2)局域网阶段(3)广域网internet阶段(4)移动互联网阶段(5)物联网阶段 三大网络电信网、电视网络、互联网 网络通信的传输媒介无线传输:WIFI、蓝牙、zigbee、4G/5G/GPRS有线通信:双绞线、同轴电缆、光纤 ...

2018-11-15 10:24:36 1625

原创 网络通信概述

网络通信概述 1、从进程间通信说起:网络域套接字socket,网络通信其实就是位于网络中不同主机上面的2个进程之间的通信。2、网络通信的层次(1)硬件部分:网卡(2)操作系统底层:网卡驱动(3)操作系统API:socket接口...

2018-11-15 09:38:01 781

转载 同步和互斥

区别:互斥:是指三部在不同进程之间的若干程序片断,当某个进程运行其中一个程序片段时,其它进程就不能运行它们之中的任一程序片段,只能等到该进程运行完这个程序片段后才可以运行。同步:是指散步在不同进程之间的若干程序片断,它们的运行必须严格按照规定的 某种先后次序来运行,这种先后次序依赖于要完成的特定的任务。   联系:同步是一种更为复杂的互斥,而互斥是一种特殊的同步。也就是说互...

2018-11-14 21:21:18 206

原创 郝斌数据结构入门--P75-链式二叉树具体遍历程序演示

郝斌数据结构入门--P75-链式二叉树具体遍历程序演示 知道递归的实现与应用,二叉树的遍历就容易了。 代码如下:#include <stdio.h>#include <malloc.h>struct BTNode{ char data; struct BTNode *pLchild; //p是指针 L是左 child是孩子 struct...

2018-11-10 11:56:00 263

原创 郝斌数据结构入门--P70-树 已知两种遍历序列求原始二叉树

郝斌数据结构入门--P70-树 已知两种遍历序列求原始二叉树 已知先序、中序、后序任何一种序列,不能够找到原始二叉树。经过研究发现,已知一棵树的两种序列,可以把二叉树求出来。也经过研究发现,已知先序和后序,无法还原出原始的二叉树。最终表明,通过  先序和中序  或者  中序和后序  我们可以还原出原始的二叉树。(有一个是中序!!)   已知先序和中序求后序规...

2018-11-09 11:28:46 321

原创 郝斌数据结构入门--P67-二叉树的先序、中序、后序遍历

郝斌数据结构入门--P67-二叉树的先序、中序、后序遍历 技巧:先、中、后序,是针对访问根节点的位置来定义的。先序,先访问根。中序,中间访问根。后序,最后访问根。 二叉树的遍历(数是一个非线性的,通过先序、中序、后序遍历把非线性的保存线性的硬件上)先序遍历[先访问根节点]:先访问根节点,再先序访问左子树,再先序访问右子树  中序遍历[中间访问根节点]:中...

2018-11-09 10:01:18 166

原创 郝斌数据结构入门--P63-树的存储

郝斌数据结构入门--P63-树的存储 完全二叉树:先把一棵树转换为满二叉树,再把最底层最右边删掉,意味着下图黄色框可以删掉,不保存。剩下的一棵树就是完全二叉树。 为什么一个二叉树以数组的方式存储时,必须要求这个数是完全二叉树?上图红色是真正的点(有效点)。如果只存放有效的点,无法确定这棵树是怎样构造出来的。别人不知道以前的树是怎样子的,所以不能只保留有效的点。 ...

2018-11-08 14:24:31 189

原创 郝斌数据结构入门--P60--树的定义与分类

郝斌数据结构入门--P60--树 树和森林就是以递归的方式定义的。树和图的很多算法都是以递归来实现的。 非线性结构-----树树的定义专业定义:1.有且只有一个称为根的节点2.有若干个互不相交的子树,这些子树本身也是一棵树通俗的定义:1.树是由节点和边组成2.每个节点只有一个父节点,但可以有多个子节点3.但有一个节点例外,该节点没有父节点,此节点...

2018-11-08 10:41:16 222

原创 C++快速入门---从函数或方法返回内存(25)

C++快速入门---从函数或方法返回内存(25) 在函数里调用new语句为某种对象或某种基本数据类型分配一块内存,再把那块内存的地址返回给程序的主代码,主代码将使用那块内存并在完成有关操作后立刻释放。 #include <iostream>//返回值类型是int * int *newInt(int value);int main(){ int *x = ...

2018-11-07 15:40:37 155

原创 C++快速入门---动态数组(24)

C++快速入门---动态数组(24) 编写一个程序为一个整数型数组分配内存,实现动态数组。能够在程序运行时让用户输入一个值,自行定义数组的长度。 新建一个动态数组例如:int *x = new int[10];可以像对待一个数组那样使用指针变量x:x[1] = 45;x[2] = 8; 删除一个动态数组delete []x; #includ...

2018-11-07 15:05:46 141

原创 C++快速入门---动态内存管理(23)

C++快速入门---动态内存管理(23) 静态内存:变量(包括指针变量)、固定长度的数组、某给定类的对象动态内存:由一些没有名字、只有地址的内存块构成的,那些内存块是在程序运行期间动态分配的。 用new向内存池申请内存用delete来释放内存 注意:在用完内存块之后,应该用delete语句把它还给内存池。另外作为一种附加的保险措施,在释放了内存块之后还应该把与之关联...

2018-11-07 10:47:52 155

原创 C++快速入门---assert函数和捕获异常(22)

C++快速入门---assert函数和捕获异常(22) assert()函数,专为调试而准备的工具函数。assert()函数需要有一个参数,它将测试这个输入参数的真 or 假状态。#include <iostream>#include <cassert>int main(){ int i = 20; assert (i == 65); re...

2018-11-06 20:39:38 1564 1

原创 C++快速入门---虚继承(21)

C++快速入门---虚继承(21) 通过虚继承某个基类,就是在告诉编译器,从当前这个类再派生出来的子类只能拥有那个基类的一个实例。 虚继承的语法:class Teacher : virtual public Person{ ... } 让Student类和Teacher类都虚继承自Person类,编译器将确保从Student和Teacher类再派生出来的子类只能拥有...

2018-11-06 16:25:18 177

原创 C++快速入门---多继承(20)

C++快速入门---多继承(20) 只要你遇到的问题无法只用一个“是一个”关系来描述的时候,就是多继承出场的时候。 例子:有一部分学生还教课挣钱(助教),这样就存在了即是老师又是学生的复杂关系,也就是同时存在着两个“是一个”关系。我们需要写一个TeachingStudent类让它同时继承Teacher类和Student类,换句话说,就是需要使用多继承。基本语法:cl...

2018-11-06 14:31:54 117

原创 C++快速入门---重载《操作符(19)

C++快速入门---重载《操作符(19) 重载的含义是可以用相同的名字去实现不同的功能:输入参数方面有所差异就不会有问题。下面是一个operator << ()函数的原型:std::ostream& operator<<(std::ostream &os, Rational f);第一个输入参数os是将要向它写数据的那个流,它是以“引用传...

2018-11-06 09:15:06 359

原创 C++快速入门---运算符重载(18)

C++快速入门---运算符重载(18) 重载就是重新赋予新的含义。函数重载是对一个已有的函数赋予新的含义,使之实现新功能。运算符重载是通过定义函数实现的。运算符重载实质上是函数的重载。 重载运算符的函数一般格式如下:函数类型 operator 运算符名称(形参列表){对运算符的重载处理}例如我们可以重载运算符+,如下:int operator+(int ...

2018-11-05 15:18:34 175 1

原创 C++快速入门---抽象方法 和 多态性(17)

C++快速入门---抽象方法 和 多态性(17) 抽象方法(abstract method,也可以成为纯虚函数)。把某个方法声明为一个抽象方法等于告诉编译器这个方法必不可少,但我现在,在这个基类里还不能为它提供一个实现。抽象方法的语法很简单:在声明一个虚方法的基础上,在原型的末尾加上“=0”。  多态性简单的说,多态性是指用一个名字定义不同的函数,调用同一个名字的函...

2018-11-05 09:47:22 154

原创 C++快速入门---虚方法(16)

C++快速入门---虚方法(16) new和delete(new相当于malloc,delete相当于free)在没有创建变量的情况下为有关数据分配内存。也就是直接创建一个指针并让它指向新分配的内存块。int *pointer=  new int;  //用new创建一个int类型的内存,占用四个字节的空间*pointer = 110;std::cout <&lt...

2018-11-03 20:52:34 207

原创 C++快速入门---静态属性和静态方法(15)

C++快速入门---静态属性和静态方法(15) 静态属性和静态方法把一个或多个成员声明为属于某个类,而不是仅属于该类的对象。好处1:程序员可以在没有创建任何对象的情况下调用有关的方法。好处2:能够让有关的数据仍在该类的所有对象间共享。 代码如下:#include <iostream>#include <string>class Pet...

2018-11-02 20:08:03 194

OpenWrt之helloworld程序

OpenWrt之helloworld程序开发入门,里面包含helloworld和Makefile

2018-06-23

CCF题目与笔记(java)

本人在刷CCF的题目的同时,做了笔记,以供后面的复习。。。

2018-04-12

蓝桥杯个人笔记(java)

本人在刷蓝桥杯的题目的同时,做了笔记,以供后面的复习。。。

2018-04-12

蓝桥杯官网练习系统 基础练习 经典(java)

蓝桥杯官网练习系统 基础练习 经典(java),本人通过搜集资料,整理出来的!

2017-10-15

jdk6中文版帮助

jdk1.6 api 中文版 chm是java api 1.6的帮助手册,是一位大神翻译的,翻译的很好,可以帮助使用java,jdk的用户们通过api及时查找到对应的类,接口,框架等详细信息的帮助手册,有需要的赶快下载吧!

2017-10-06

基于嵌入式Linux的Qt图形程序实战开发

《普通高校"十二五"规划教材·实践创新系列:基于嵌入式Linux的Qt图形程序实战开发》共分为17章,分别从信号与槽、对话框、主窗口、自定义窗口部件、布局管理、文本、容器类、目录和文件处理、事件机制、二维图形、MDl程序设计、Model/View结构、网络编程、数据库、多线程、Qt4.5移植等部分,详细介绍了Qt的基础知识和GUl编程应用。同时在各个章节穿插了应用实例,使读者更容易上手掌握。

2017-09-26

空空如也

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

TA关注的人

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