
C#
RunnerDNA
这个作者很懒,什么都没留下…
展开
-
C#使用NPOI将List数据导出到Excel文档
NPOI是一个开源的C#读写Excel、WORD等微软OLE2组件文档的项目。使用 NPOI 可以在没有安装 Office 或者相应环境的机器上对 WORD/EXCEL 文档进行读写。这里原创 2020-04-21 11:29:30 · 2916 阅读 · 2 评论 -
C#使用FFmpeg实现视频压缩优化的探索
之前写过一篇关于《C#使用FFmpeg实现音视频合成、转码、压缩等功能》的文章,原视频压缩命令:ffmpeg -i test_video.mp4 -b 400k -vcodec libx264 -y test_video_handle.mp4可以将视频压缩为原来的十分之一,但是有个问题就是压缩时CPU占用率很高,在97%以上(与计算机配置有关,甚至能达到100%),这在视频体积很大时需要较...原创 2020-01-09 09:32:30 · 3865 阅读 · 0 评论 -
C#使用FFmpeg实现音视频合成、转码、压缩等功能
多媒体视频处理工具FFmpeg有非常强大的功能,包括视频采集功能、视频格式转换、视频抓图、给视频加水印等。最近做了个小功能,将网络摄像机录制的视频和麦克风录制的音频进行合成并压缩,采用C#起process进程执行ffmpeg.exe,对音视频进行处理。代码如下:1、准备音频文件test_audio.m4a,视频文件test_video.mp4,这里为了便于说明放在了工程路径与ffmpeg.ex...原创 2019-09-12 09:18:16 · 9659 阅读 · 0 评论 -
C#使用UDP+NAudio封装的语音对讲与同步录音功能类库
采用UDP网络通信和NAudio类库实现了语音对讲与录音的功能类库,步骤如下:1、下载NAudio源码,地址https://github.com/naudio/NAudio2、新建工程:类库(.NET Framework)3、将NAudio源码中的INetworkChatCodec类和UncompressedPcmChatCodec类拷贝至工程4、添加对log4net.dll和NA...原创 2019-09-04 16:55:31 · 3500 阅读 · 6 评论 -
C#动态类Dynamic的使用
Dynamic动态类的出现让C#具有了弱语言类型的特性,编译器在编译的时候不再对类型进行检查。工作中经常遇到下面的场景,通过请求获取到一个JSON字符串,而我们又对返回的对象类型一无所知或者仅仅想取到其中某字段的值,此时采用dynamic来进行调用非常方便。代码示例:创建一个控制台应用程序,需要引用Newtonsoft.Jsonusing System;namespace Dyn...原创 2019-04-19 18:36:02 · 957 阅读 · 0 评论 -
C#一个完整的Log4net使用实例
Log4net库是.Net下一个非常优秀的开源日志记录组件,是一个帮助程序员将日志信息输出到各种目标(控制台、文件、数据库等)的工具。它具有:支持多数框架、可输出日志到多种目标、层级日志体系、可使用XML配置、可动态配置、模块化和可扩展化设计、灵活、高性能等特征。日志记录器(Logger)的行为是分等级的,一般可分为5种日志等级(Level),优先级从高到低:1、FATAL(致命错误):记...原创 2019-04-28 10:00:34 · 34976 阅读 · 3 评论 -
C#动态数据集合ObservableCollection的三种排序方式
WPF中对ListBox、ListView、TreeView等实现数据双向绑定经常会用到ObservableCollection<T>类。ObservableCollection<T>类 表示一个动态数据集合,它是实现了INotifyPropertyChanged 接口的数据集合,在添加项、移除项或刷新整个列表时,此集合将提供通知。如果要实现集合中的某字段或属...原创 2019-04-26 10:31:31 · 19364 阅读 · 1 评论 -
C#断网情况下获取本机MAC地址的方法
MAC地址用于在网络中唯一标识一个网卡,在网络应用中用来确认网上设备的位置。查到的获取MAC的几种方式(参考:https://www.cnblogs.com/diulela/archive/2012/04/07/2436111.html),其中通过WMI系统服务读取MAC地址的方式比较常用,方法如下:///<summary>/// 通过WMI读取MAC///</su...原创 2019-04-12 11:15:03 · 2471 阅读 · 1 评论 -
C#使用游标实现补间函数
补间可以实现两个图形之间颜色、形状、大小、位置等的线性变化。例如A...AB...BC...C,其中A、B、C是三幅图片,两个A的宽分别是10cm和50cm,两个A之间共5帧,那么使用补间操作后,A图片的宽分别是10cm、20cm、30cm、40cm、50cm,B和C图片的宽度计算同理。对于A...ABC...C或者A...ABBC...C这种情况,B不进行补间操作。下面新建一个控制台处理...原创 2019-03-29 18:43:16 · 659 阅读 · 0 评论 -
C#串口通信简单实现
串口通信(Serial Communications)是指外设和计算机间通过数据信号线、地线等按位(bit)进行传输数据的一种通信方式,属于串行通信方式,能够实现远距离通信,长度可达1200米。尽管比按字节(byte)的并行通信慢,但是串口可以在使用一根线发送数据的同时用另一根线接收数据。串口通信最重要的参数是波特率、数据位、停止位和奇偶校验。对于两个进行通信的端口,这些参数必须匹配。串口通信...原创 2020-04-23 11:24:08 · 1256 阅读 · 0 评论 -
C#进程间通信的几种方式:消息队列
方式三:消息队列“消息”是在两台计算机间传送的数据单位。消息可以非常简单,例如只包含文本字符串;也可以更复杂,可能包含嵌入对象。消息被发送到队列中。消息队列(Message Queue)是在消息的传输过程中保存消息的容器。消息队列管理器在将消息从它的源中继到它的目标时充当中间人。队列的主要目的是提供路由并保证消息的传递;如果发送消息时接收者不可用,消息队列会保留消息,直到可以成功地传递它。...原创 2019-03-07 17:09:11 · 9539 阅读 · 0 评论 -
C#进程间通信的几种方式:Socket通信
方式二:Socket通信套接字(Socket)是支持TCP/IP协议(安全)和UDP协议(快速)的网络通信的基本操作单元。套接字包含进行网络通信必须的五种信息:连接使用的协议,本地主机的IP地址,本地进程的协议端口,远地主机的IP地址,远地进程的协议端口。为了满足不同程序对通信质量和性能的要求,一般的网络系统都提供了流式、数据报式、原始3种不同类型的套接字。Socket通信方式:同步:...原创 2019-03-07 11:47:14 · 11059 阅读 · 0 评论 -
C#进程间通信的几种方式:管道通信
年底了,有了大把时间,终于着手尝试写写技术博客,跟大家交流下心得。就从进程间通信相关的内容开始吧,在此对以往工作中用到的几种进程间通信方式做一下简单的总结。进程间通信(IPC,InterProcess Communication)是指在不同进程之间传播或交换信息。进程间通信的方式(C/S结构开发环境)通常有管道、Socket、消息队列、信号量、共享存储、Streams等。方式一:管道通...原创 2019-01-18 11:50:19 · 22079 阅读 · 4 评论