简单的描述下写这个软件的背景吧。之前短视频平台很火的时候,相信很多人都想进去分一杯羹,俺当然也不能免俗,但是人丑家穷又没才艺,咋办呢?看到别人有只发文字啥的一些视频加点背景音乐也能看,想着,Wo Cao?,这我也行啊, I Can I Up。但是让我天天去找素材剪辑视频啥的,那肯定干不来,毕竟程序员是需要加班的,所以,这个粗糙的程序就诞生了,当然我也没怎么用,发了两篇觉得不好玩。就没再玩了。

后来通过种种途径吧,才知道短视频背后的产业相当复杂,一个视频能不能火基本不在于视频本身。

这个软件主要是基于录屏功能来实现的,不过是一键式的罢了,当然实现录屏我们用了第三方的插件:AForge。项目需要的DLL如下图:

实现功能:

  • 利用录屏功能录制语句的生成过程,并保存成视频格式

开发环境:

开发工具: Visual Studio 2013

.NET Framework版本:4.5

实现代码:

  public class RecordingUtil{VideoFileWriter vfWriter = new VideoFileWriter();ScreenCaptureStream scStream = null;readonly Rectangle Rect;public RecordingUtil(Rectangle rect, int interval = 40){Rect = rect;scStream = new ScreenCaptureStream(rect, interval);scStream.NewFrame += (s, e1) =>{vfWriter.WriteVideoFrame(e1.Frame);};}public void Start(string savePath, int Rate = 4000 * 1024){vfWriter.Open(savePath, Rect.Width, Rect.Height, 25, VideoCodec.MPEG4, 4000 * 1024);scStream.Start();}public void Stop(){if (scStream != null && scStream.IsRunning){scStream.Stop();}if (vfWriter.IsOpen){vfWriter.Close();}}}
 private void btnCreate_Click(object sender, EventArgs e){checkNull();btnCreate.Text = "正在生成";btnCreate.Enabled = false;SaveFileDialog sfd = new SaveFileDialog();sfd.Filter = "视频文件|*.MP4";if (sfd.ShowDialog() == DialogResult.OK){Point point = new Point(this.Location.X + 5, this.Location.Y + 25);Size size = new Size(splitContainer1.Panel1.Width % 2 == 1 ? splitContainer1.Panel1.Width - 1 : splitContainer1.Panel1.Width, splitContainer1.Panel1.Height % 2 == 1 ? splitContainer1.Panel1.Height - 1 : splitContainer1.Panel1.Height);Rectangle rect = new Rectangle(point, size);RecordingUtil Recording = new RecordingUtil(rect);Recording.Start(sfd.FileName);createText(txtWord.Text);Recording.Stop();}btnCreate.Text = "生 成";btnCreate.Enabled = true;}private void btnPreview_Click(object sender, EventArgs e){checkNull();btnPreview.Text = "正在预览";btnPreview.Enabled = false;createText(txtWord.Text);btnPreview.Text = "预 览";btnPreview.Enabled = true;}private void checkNull(){if (string.IsNullOrWhiteSpace(txtWord.Text)){toolTip1.Hide(txtWord);toolTip1.Show("不可为空!", txtWord, 5, -60, 2000);return;}}private void createText(string text){Graphics g = splitContainer1.Panel1.CreateGraphics();g.Clear(splitContainer1.Panel1.BackColor);Font font = new Font("华文行楷", 25);// Brush whiteBrush = new SolidBrush(Color.FromArgb(0, 192, 0));Brush whiteBrush = new SolidBrush(Color.Black);int x = 0, y = 0;string[] arr = txtWord.Text.Split('\n');for (int i = 0; i < arr.Length; i++){x = 40 * i + 15;for (int j = 0; j < arr[i].Length; j++){y = 40 * j + 15;g.DrawString(arr[i][j].ToString(), font, whiteBrush, x, y);Delay(300);}}}private void Delay(double mm){DateTime now = DateTime.Now;while (DateTime.Now.AddMilliseconds(-mm) <= now){Application.DoEvents();}}

实现效果:

由简入繁,拿来即用

更多精彩,请搜索公 Z 号:Csharp 小记

C# 文字视频生成器相关推荐

  1. 用Python写一个营销号垃圾视频生成器

    用Python写一个营销号垃圾视频生成器 可能是闲着太无聊,然而复习是不可能复习的,就做了一个这个玩意儿,改天进军UC和百家号(不会真有人用吧) 先看看效果:(1:20以后) 用Python做的营销号 ...

  2. python广告营销平台_荐用Python写一个营销号垃圾视频生成器

    用Python写一个营销号垃圾视频生成器 可能是闲着太无聊,然而复习是不可能复习的,就做了一个这个玩意儿,改天进军UC和百家号(不会真有人用吧) 先看看效果:(1:20以后) 用Python做的营销号 ...

  3. 虚拟聊天记录生成器,微信对话视频生成器,让微信对话以视频形式呈现!

    微信对话视频生成器是一款功能强大的工具,可以将微信聊天记录转化成生动有趣的视频.它不仅可以让用户在朋友圈或社交平台上展示自己的聊天趣事,还可以用于制作个性化的视频礼物.接下来,我们将介绍该工具的主要功 ...

  4. 演讲实录(文字+视频)丨基于DevOps的质量左移与右移思考

    本文内容选自2021中国DevOps社区峰会 · 深圳站,陈晓鹏老师分享的<基于DevOps的质量左移与右移思考>文字实录和视频回放. 2022中国DevOps社区峰会 · 天津站,定档8 ...

  5. php文字添加投影,视频加动态标题文字 视频标题文字添加阴影边框 给视频加上炫酷的文字标题...

    开篇就来点个题:今天的教程内容就是视频添加文字标题,虽然都是给视频加文字标题但是今天的和往常有点不太一样呢!软件中不仅自带了许多炫酷的标题模板外,还可以对文字标题进行编辑,给标题添加动态效果,修改文字 ...

  6. DayDayUp:吴晓波—2018.12.30年终秀——《预见2019:国运70》演讲重点概览【文字+视频】

    DayDayUp:吴晓波-2018.12.30年终秀--<预见2019:国运70>演讲重点概览[文字+视频] 目录 一.回顾2018 回看2017年终秀的8个预言 五大悬念 二.展望201 ...

  7. 软件名称:纯文字表情生成器

    软件名称:纯文字表情生成器 软件版本:v1.0.5 软件语言:中文 软件大小:2M 软件包名:com.zhuhean.emoji 支持系统:Android 2.2+及更高版本 测试机型:samsung ...

  8. Make-A-Video(造啊视频)——无需文字-视频数据的文字转视频(文生视频)生成方法

    © 2022 Uriel Singer et al (Meta AI) © 2023 Conmajia 本文基于论文 Make-A-Video: Text-to-Video Generation wi ...

  9. Windows神器 微信对话视频生成器

    简介 微信对话生成器是一款可以让你在朋友圈轻松装逼炫富的神器,你可以使用这款软件轻松制作微信对话.微信红包.等截图或视频,让你在朋友圈高逼格的装逼! 其次在微信对话制作界面,用户可以制作文本.图片.语 ...

最新文章

  1. EffectiveC++ Item11
  2. 字符串(一):char 数组
  3. 经典C语言程序100例之三
  4. 深入了解asp.net框架。生命周期以及事件处理机制
  5. 【转】Unity3D研究院之使用Xamarin Studio调试Unity程序
  6. Rendering Linear lighting and color
  7. 51Nod-1083 矩阵取数问题【DP】
  8. [转载] lstm时间序列预测_pytorch入门使用PyTorch进行LSTM时间序列预测
  9. 研磨设计模式学习笔记3--适配器模式Adapter
  10. MySQL/InnoDB中,对于锁的认识
  11. install4j Enterprise Edition序列号
  12. 20200202每日一句
  13. 仿直播礼物涂鸦/屏幕礼物涂鸦动画
  14. 08-【go】go语言中的*和的使用方法
  15. 产品温度冲击检测 VS 实际使用寿命换算详解
  16. 计算机网络配置——静态路由的配置
  17. 基于三点说构成的夹角提取特征点
  18. 各种好看的cosplay小姐姐热门图片,统统爬取收藏
  19. Java实现蜗牛爬井的问题
  20. 【译】可扩展前端2  —  常见模式

热门文章

  1. iOS底层原理之架构设计
  2. CVPR 2021 论文大盘点-人脸造假检测篇
  3. 【前沿技术】浅析搜狗AI主播背后的核心技术
  4. 通过证书管理解决无法连接 Citrix XenApp SSL 61 您还未选择信任证书颁发者的问题
  5. BLE Mesh (8) —— Friendship
  6. PYNQ 采集计划(二)Socket服务端与客户端的搭建,pynq到pc的数据流传输
  7. 金蝶软件界面乱码及输入汉字时乱码的解决方案
  8. 一文读懂交叉熵和最大似然的关系及在人脸识别中的应用
  9. 人工智能实战2019第七次作业(OpenPAI) 16721088 焦宇恒
  10. 复工后,企业裁员、降薪前必须了解的10个法律问题