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

news2025/4/2 21:53:44

不废话 直接上效果图
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 parsing
            string 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 logic
            for (int i = 0; i < lines.Length; i++)
            {
                string line = lines[i].Trim();
                // Check for time code
                if (line.Contains("-->"))
                {
                    // Split the time codes
                    var 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 content
                    currentContent = line;
                    // Add the row to the DataGridView
                    int 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 milliseconds
                    dgv_lens.Rows[index].Cells[3].Value = (int)outPoint.TotalMilliseconds; // Convert TimeSpan to milliseconds
                    dgv_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.coloradmin.cn/o/2324666.html

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

相关文章

游戏被外挂攻破?金融数据遭篡改?AI反作弊系统实战方案(代码+详细步骤)

一、背景与需求分析 随着游戏行业与金融领域的数字化进程加速,作弊行为(如游戏外挂、金融数据篡改)日益复杂化。传统基于规则的防御手段已难以应对新型攻击,而AI技术通过动态行为分析、异常检测等能力,为安全领域提供了革命性解决方案。本文以游戏反作弊系统和金融数据安…

晶晨S905L3A(B)-安卓9.0-开启ADB和ROOT-支持IPTV6-支持外置游戏系统-支持多种无线芯片-支持救砖-完美通刷线刷固件包

晶晨S905L3A(B)-安卓9.0-开启ADB和ROOT-支持IPTV6-支持外置游戏系统-支持多种无线芯片-支持救砖-完美通刷线刷固件包 适用型号&#xff1a;M401A、CM311-1a、CM311-1sa、B863AV3.1-M2、B863AV3.2-M、UNT403A、UNT413A、M411A、E900V22C、E900V22D、IP112H等等晶晨S905L3A(B)处…

AI来了,新手如何着手学习软件开发?

AI时代新手学习软件开发的7步进化指南 &#xff08;附具体工具与避坑策略&#xff09; 一、建立“人机协作”学习观 AI是教练&#xff0c;不是替身 正确姿势&#xff1a;用AI辅助理解概念&#xff08;如让DeepSeek 、ChatGPT用生活案例解释递归&#xff09;&#xff0c;但坚持手…

《K230 从熟悉到...》矩形检测

《K230 从熟悉到...》矩形检测 《庐山派 K230 从熟悉到...》矩形检测 矩形检测技术是一种广泛应用于电子图像处理的核心技术。它通过识别和分析图像中的矩形结构&#xff0c;为各种应用提供基础支持。从传统图像处理算法到现代深度学习技术&#xff0c;矩形检测的实现途径多种多…

3. 第三放平台部署deepseek

有时候我们会发现使用deepseek服务器&#xff0c;异常卡顿&#xff0c;这是由于多方面原因造成的&#xff0c;比如说访问人数过多等。想要解决这个问题&#xff0c;我们可以选择第三方平台进行部署 第三方平台 我们可以选择的第三方平台很多&#xff0c;比如硅基流动、秘塔搜索…

【C++指针】搭建起程序与内存深度交互的桥梁(下)

&#x1f525;&#x1f525; 个人主页 点击&#x1f525;&#x1f525; 每文一诗 &#x1f4aa;&#x1f3fc; 往者不可谏&#xff0c;来者犹可追——《论语微子篇》 译文&#xff1a;过去的事情已经无法挽回&#xff0c;未来的岁月还可以迎头赶上。 目录 C内存模型 new与…

IEEE PDF Xpress校验出现 :字体无法嵌入问题以及pdf版本问题

文章目录 问题描述一、字体嵌入问题首先查看一下&#xff0c;哪些字体没有被嵌入查看window的font文件夹里的字体下载字体的网站修复字体嵌入问题 二、pdf版本不对 问题描述 在处理IEEE的camera ready的时候&#xff0c;提交到IEEE express的文件没有办法通过validate&#xf…

cookie详解

一、cookie出现原因 http是无状态的&#xff0c;浏览器无法记录当前是哪个人浏览的&#xff0c;所以出现了cookie 作用&#xff1a;会话状态管理&#xff08;用户登录状态、购物车、游戏分数&#xff09;、个性化设置&#xff08;主题、自定义设置&#xff09;、浏览器行为跟…

Mayo Clinic Platform在人工智能医疗领域的现状及启示意义研究

一、引言 1.1 研究背景与意义 在科技飞速发展的当下,人工智能(AI)已逐渐渗透至各个行业,医疗领域作为关乎人类生命健康的重要领域,也迎来了人工智能技术带来的深刻变革。人工智能医疗,作为人工智能与医疗行业深度融合的产物,正重塑着全球医疗的格局。 从全球范围来看,…

如何将 Java 应用做成 EXE 的可执行软件

目录 前言一、情景介绍二、实现步骤1. 打 Jar 包2. 编写 bat 批处理文件3. bat 转 exe 前言 最近使用 GUI 帮朋友写了一个软件&#xff0c;为了方便他处理工作上的重复性且很麻烦的事情&#xff0c;程序是使用 Java 写的&#xff0c;就不得不面对一个问题&#xff1a;我必须将…

第一篇:系统分析师首篇

目录 一、目标二、计划三、完成情况1.宏观思维导图2.过程中的团队管理和其它方面的思考 四、意外之喜(最少2点)1.计划内的明确认知和思想的提升标志2.计划外的具体事情提升内容和标志 一、目标 通过参加考试&#xff0c;训练学习能力&#xff0c;而非单纯以拿证为目的。 1.在复…

自动关机监控器软件 - 您的电脑节能助手

## 自动关机监控器 - 您的电脑节能助手 自动关机监控器是一款基于Python开发的实用工具&#xff0c;旨在帮助用户节省电力资源并延长电脑使用寿命。该程序通过监控用户的鼠标和键盘活动&#xff0c;在设定的无活动时间后自动关闭计算机&#xff0c;特别适合需要长时间离开电脑但…

线程概念与控制(中)

线程概念与控制&#xff08;上&#xff09;https://blog.csdn.net/Small_entreprene/article/details/146464905?sharetypeblogdetail&sharerId146464905&sharereferPC&sharesourceSmall_entreprene&sharefrommp_from_link我们经过上一篇的学习&#xff0c;接…

[GXYCTF2019]禁止套娃1 [GitHack] [无参数RCE]

Git基础 Git信息泄露原理解析及利用总结 - FreeBuf网络安全行业门户 CTF中的GIT泄露_ctf git泄露-CSDN博客 Git结构 dirsearch扫出来一大堆东西&#xff08;然而这些并没有什么屁用&#xff09; 但也算起码了解了git结构了吧 /.git/HEAD&#xff1a;表示当前HEAD指针的指…

从ChatGPT到AutoGPT——AI Agent的范式迁移

一、AI Agent的范式迁移 1. ChatGPT的局限性与Agent化需求 单轮对话的“工具属性” vs. 多轮复杂任务的“自主性” ChatGPT 作为强大的生成式AI,虽然能够进行连贯对话,但本质上仍然是“工具型”AI,依赖用户提供明确的指令,而无法自主规划和执行任务。 人类介入成本过高:提…

stock-pandas,一个易用的talib的替代开源库。

原创内容第841篇&#xff0c;专注智能量化投资、个人成长与财富自由。 介绍一个ta-lib的平替——我们来实现一下&#xff0c;最高价突破布林带上轨&#xff0c;和最低价突破布林带下轨的可视化效果&#xff1a; cross_up_upper stock[high].copy()# cross_up_upper 最高价突破…

Spring Cloud Gateway详细介绍简单案例

文章目录 1、Spring Cloud Gateway 详细介绍1.1. 统一入口&#xff08;Single Entry Point&#xff09;1.2. 请求路由&#xff08;Request Routing&#xff09;1.3. 负载均衡&#xff08;Load Balancing&#xff09;1.4. 流量控制&#xff08;Rate Limiting&#xff09;1.5. 身…

鸿蒙原生开发之状态管理V2

一、ArkTS状态变量的定义&#xff1a; State&#xff1a;状态&#xff0c;指驱动UI更新的数据。用户通过触发组件的事件方法&#xff0c;改变状态数据。状态数据的改变&#xff0c;引起UI的重新渲染。 在鸿蒙原生开发中&#xff0c;使用ArkTS开发UI的时候&#xff0c;我们可以…

矩阵中对角线的遍历问题【C++】

1&#xff0c;按对角线进行矩阵排序 题目链接&#xff1a;3446. 按对角线进行矩阵排序 - 力扣&#xff08;LeetCode&#xff09; 【题目描述】 对于一个m*n的矩阵grid&#xff0c;要求对该矩阵进行 变换&#xff0c;使得变换后的矩阵满足&#xff1a; 主对角线右上的所有对角…

[Lc4_dfs] 解数独 | 单词搜索

目录 1.解数独 题解 2.单词搜索 题解 1.解数独 链接&#xff1a;37. 解数独 编写一个程序&#xff0c;通过填充空格来解决数独问题。 数独的解法需 遵循如下规则&#xff1a; 数字 1-9 在每一行只能出现一次。数字 1-9 在每一列只能出现一次。数字 1-9 在每一个以粗实线…