c#winform,倒鸭子字幕效果,typemonkey字幕效果,抖音瀑布流字幕效果

不废话 直接上效果图
C# winform 开发抖音的瀑布流字幕。
也是typemonkey插件字幕效果
或者咱再网上常说的倒鸭子字幕效果

主要功能

1,软件可以自定义添加字幕内容
2,软件可以添加字幕显示的时间区间
3,可以自定义字幕颜色,可以随机颜色
4,支持字幕的上下调节
5,支持字幕的删除行和清空
6,支持字幕的导出和导入
7,支持上传背景音乐mp3
8,支持更换背景颜色和背景图片
9,支持导入srt字幕文件,也就是剪映导出的字幕文件,这样能有效的把字幕和口播的音频进行对齐。
10,可以自定义字幕的字体。

下面给大家展示一下功能图片

         // 定义内容文本数组,调整了每行字幕的持续时间let contentTexts = [{ "inPoint": 0, "outPoint": 1500, "content": "嘟", "color": "#FF0000", "fontFamily": "Microsoft YaHei"},{ "inPoint": 1500, "outPoint": 3000, "content": "您好", "color": "#33FF57", "fontFamily": "字由点字墩墩体"},{ "inPoint": 3000, "outPoint": 4500, "content": "您是大法师吗?", "fontFamily": "抖音美好体"},{ "inPoint": 4500, "outPoint": 6000, "content": "哎", "color": "#3357FF", "fontFamily": "抖音美好体"},{ "inPoint": 6000, "outPoint": 7500, "content": "1212哎", "color": "#3357FF", "fontFamily": "Microsoft YaHei"},{ "inPoint": 7500, "outPoint": 9000, "content": "哎222222", "color": "#3357FF", "fontFamily": "抖音美好体"},{ "inPoint": 9000, "outPoint": 10500, "content": "哎3333333333", "color": "#3357FF", "fontFamily": "Microsoft YaHei"},{ "inPoint": 10500, "outPoint": 12000, "content": "3333哎", "color": "#3357FF", "fontFamily": "Arial"},{ "inPoint": 12000, "outPoint": 13500, "content": "22222222222222哎", "color": "#3357FF", "fontFamily": "抖音美好体"},{ "inPoint": 13500, "outPoint": 15000, "content": "哎", "color": "#3357FF", "fontFamily": "Arial"},{ "inPoint": 15000, "outPoint": 18000, "content": "111111111111111哎", "color": "#3357FF", "fontFamily": "Arial"},];	

例如 导入srt文件的c# 代码
 

      private void ParseSRTFile(string filePath){string[] lines = File.ReadAllLines(filePath);dgv_lens.Rows.Clear(); // Clear existing rows// Temporary variables for SRT parsingstring currentContent = "";TimeSpan inPoint = TimeSpan.Zero;TimeSpan outPoint = TimeSpan.Zero;Random random = new Random();string[] colors = new string[]{"#5AAEF3", "#62D9AD", "#5B6E96", "#a8dffa", "#ffdc4c","#FF974C", "#E65A56", "#6D61E4", "#4A6FE2", "#6D9AE7","#23C2DB", "#D4EC59", "#FFE88E", "#FEB64D", "#FB6E6C"};// Parsing logicfor (int i = 0; i < lines.Length; i++){string line = lines[i].Trim();// Check for time codeif (line.Contains("-->")){// Split the time codesvar timeCodes = line.Split(new[] { " --> " }, StringSplitOptions.None);if (timeCodes.Length == 2){try{inPoint = TimeSpan.ParseExact(timeCodes[0].Trim(), @"hh\:mm\:ss\,fff", CultureInfo.InvariantCulture);outPoint = TimeSpan.ParseExact(timeCodes[1].Trim(), @"hh\:mm\:ss\,fff", CultureInfo.InvariantCulture);}catch (FormatException ex){MessageBox.Show($"Error parsing time codes: {ex.Message}", "Parsing Error", MessageBoxButtons.OK, MessageBoxIcon.Error);return; }}}else if (!string.IsNullOrEmpty(line) && !line.All(char.IsDigit)){// This line is the contentcurrentContent = line;// Add the row to the DataGridViewint index = dgv_lens.Rows.Add();dgv_lens.Rows[index].Cells[0].Value = currentContent;dgv_lens.Rows[index].Cells[1].Value = cbRandomColor.Checked ? colors[random.Next(colors.Length)] : lbTextColor.Tag.ToString();dgv_lens.Rows[index].Cells[2].Value = (int)inPoint.TotalMilliseconds; // Convert TimeSpan to millisecondsdgv_lens.Rows[index].Cells[3].Value = (int)outPoint.TotalMilliseconds; // Convert TimeSpan to millisecondsdgv_lens.Rows[index].Cells[4].Value = cbFonts.Text; // Current font selection}}MessageBox.Show("SRT file imported successfully!", "Import Successful", MessageBoxButtons.OK, MessageBoxIcon.Information);}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/899739.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Pycharm(八):字符串切片

一、字符串分片介绍 对操作的对象截取其中一部分的操作&#xff0c;比如想要获取字符串“888666qq.com前面的qq号的时候就可以用切片。 字符串、列表、元组都支持切片操作。 语法&#xff1a;字符串变量名 [起始:结束:步长] 口诀&#xff1a;切片其实很简单&#xff0c;只顾头来…

图片解释git的底层工作原理

&#xff08;图片来源&#xff1a;自己画的&#xff09; 基于同一个commit创建新分支 &#xff08;图片来源&#xff1a;书籍《Linux运维之道》 ISBN 9787121461811&#xff09; 在新分支上修改然后commit一次 &#xff08;图片来源&#xff1a;书籍《Linux运维之道》 ISBN 978…

leetcode994.腐烂的橘子

思路源自 【力扣hot100】【LeetCode 994】腐烂的橘子&#xff5c;多源BFS 这里图中的腐烂的的橘子是同时对周围进行腐化&#xff0c;所以采用多源bfs就能解决 多源bfs与单源bfs的区别就在于队列取出时一轮是取出队列当中的全部元素 class Solution {public int orangesRotti…

【华为OD技术面试真题 - 技术面】- Java面试题(15)

华为OD面试真题精选 专栏:华为OD面试真题精选 目录: 2024华为OD面试手撕代码真题目录以及八股文真题目录 介绍下TCP/UDP TCP(传输控制协议)和 UDP(用户数据报协议) TCP(Transmission Control Protocol)和 UDP(User Datagram Protocol)是两种常见的传输层协议,主要…

‌在 Fedora 系统下备份远程 Windows SQL Server 数据库的完整方案

‌一、环境准备与工具安装‌ ‌1. 安装 Microsoft SQL Server 命令行工具‌ Fedora 需安装 mssql-tools 和 ODBC 驱动&#xff1a; # 添加 Microsoft 仓库 sudo curl -o /etc/yum.repos.d/msprod.repo https://packages.microsoft.com/config/rhel/8/prod.repo# 安装工具包 …

DeepSeek:巧用前沿AI技术,开启智能未来新篇章

引言 近年来&#xff0c;人工智能&#xff08;AI&#xff09;技术迅猛发展&#xff0c;大模型成为全球科技竞争的核心赛道。在这场AI革命中&#xff0c;DeepSeek作为中国领先的大模型研发团队&#xff0c;凭借其创新的技术架构、高效的训练方法和广泛的应用场景&#xff0c;迅…

R语言实现轨迹分析--traj和lcmm包体会

R语言实现轨迹分析–traj和lcmm包体会 轨迹分析是对重复测量数据的一种归纳&#xff0c;转化为一种分类变量&#xff0c;比如手术后1&#xff5e;7天内的疼痛评分&#xff0c;可以形成术后急性痛轨迹。形成的轨迹作为一个分类变量&#xff0c;可以用于预测疾病的预后&#xff…

Vue 3 事件总线详解:构建组件间高效通信的桥梁

Vue 3 事件总线详解&#xff1a;构建组件间高效通信的桥梁 为什么需要事件总线&#xff1f;使用 mitt 实现事件总线1. 安装 mitt2. 创建事件总线3. 在组件中使用事件总线发送端组件&#xff08;例如 ComponentA.vue&#xff09;接收端组件&#xff08;例如 ComponentB.vue&…

MySQL的基础语法1(增删改查、DDL、DML、DQL和DCL)

目录 一、基本介绍 二、SQL通用语法 三、SQL分类(DDL、DML、DQL、DCL) 1.DDL 1.1数据库操作 1.2表操作 1.2.1表操作-查询创建 1.2.2表操作-数据类型 1&#xff09;数值类型 2&#xff09;字符串类型 3&#xff09;日期时间类型​编辑 4&#xff09;表操作-案例 1.2.3…

【NLP】15. NLP推理方法详解 --- 动态规划:序列标注,语法解析,共同指代

动态规划 (Dynamic Programming) 动态规划&#xff08;Dynamic Programming&#xff0c;简称 DP&#xff09;是一种通过将问题分解为较小子问题来优化计算效率的技术。它特别适用于优化最优解问题&#xff0c;比如序列标注&#xff08;sequence tagging&#xff09;这类任务。…

JavaScript中的NaN、undefined和null 的区别

NaN代表"Not a Number",它是一种特殊的数值,用于表示非数字值。当一个操作无法返回有效的数值时,通常会得到NaN作为结果。 let result = 10 / abc; console.log(result); // 输出 NaN需要注意的是,NaN与自身不相等,我们无法通过简单的比较操作符(如==或===)来…

Turtle事件处理(键盘与鼠标交互)

Turtle 提供了 事件驱动编程,允许我们使用 键盘 和 鼠标 控制 Turtle,从而实现交互式绘图。例如,我们可以让 Turtle 响应 按键、鼠标点击 和 拖动 事件,使其根据用户的输入进行移动、旋转或绘制图形。 1. 事件机制概述 Turtle 的事件处理主要依赖 turtle.Screen() 提供的 …

【Keepalived】Keepalived-2.3.3明确结束对CentOS 7的支持

2025年3月30日&#xff0c;官方发布了Keepalived的最新版&#xff0c;版本号&#xff1a;2.3.3 而2024年11月3日发布的2.3.2版本&#xff0c;在CentOS 7.9上编译的时候&#xff0c;就出现了报错&#xff0c;但是在Alma Linux 8.10上&#xff0c;则可以成功编译安装&#xff0c…

PyTorch --torch.cat张量拼接原理

在 PyTorch 的 torch.cat 函数中&#xff0c;out 参数用于指定输出张量的存储位置。是否使用 out 参数直接影响结果的存储方式和张量的内存行为。以下是详细解释&#xff1a; 不使用 out 参数&#xff08;默认行为&#xff09; 含义&#xff1a;不提供 out 参数时&#xff0c;…

人工智能之数学基础:矩阵对角化的本质

本文重点 前面的课程中,我们学习了矩阵的对角化,基于对角化可以将矩阵A转变为对角矩阵D,但是你有没有想过,为什么要进行矩阵对角化,矩阵对角化究竟做了一件什么事情呢? 矩阵对角化的本质 几何解释: 从几何变换的角度看,矩阵对角化意味着我们找到了一组基,使得线性变…

ubuntu的ubuntu--vg-ubuntu--lv磁盘扩容

在我们安装ubuntu时&#xff0c;如果选择的是自动分区&#xff0c;就会按照逻辑卷的形式来分区&#xff0c;并且只分配100G其余的并不会被分配&#xff0c;这对我们大多数情况来说都是不合理的&#xff0c;所以&#xff0c;如何扩充呢 下面以一个小的案例来说明如何扩充 问题…

Redis BitMap 实现签到及连续签到统计

一、引言 用户签到功能是很多应用都离不开的一个板块&#xff0c;单词打开、QQ达人等等为我们所熟知&#xff0c;这项功能该如何实现呢&#xff0c;一些朋友可能想当然的觉得无非将每日的签到数据记录下来不就好了&#xff0c;不会去细想用谁记录&#xff0c;如何记录才合适。 …

前端国际化-插件模式

文章目录 Webpack 插件开发解析中文调用有道翻译 API生成 JSON 语言文件React 国际化实现 Webpack 插件开发 创建 i18n-webpack-plugin.js 插件&#xff1a;在 src 目录下扫描所有文件使用 babel-parser 解析 JavaScript/JSX 代码识别中文文本通过有道翻译 API 翻译生成 local…

IP属地和发作品的地址不一样吗

在当今这个数字化时代&#xff0c;互联网已经成为人们日常生活不可或缺的一部分。随着各大社交平台功能的不断完善&#xff0c;一个新功能——IP属地显示&#xff0c;逐渐走进大众视野。这一功能在微博、抖音、快手等各大平台上得到广泛应用&#xff0c;旨在帮助公众识别虚假信…

PP-ChatOCRv3新升级:多页PDF信息抽取支持自定义提示词工程,拓展大语言模型功能边界

文本图像信息抽取技术在自动化办公、建筑工程、教育科研、金融风控、医疗健康等行业领域具有广泛应用场景。2024年9月&#xff0c;飞桨低代码开发工具PaddleX中新增文本图像智能产线PP-ChatOCRv3&#xff0c;充分结合PaddleOCR的文本图像版面解析能力和文心一言语言理解优势&am…