热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

卡拉OK字幕效果制作

就简单实现一下卡拉OK的字幕效果*字的颜色变化是线性变化,即随时间的线性变化而不是按字的单位变颜色的所以有时候是字的一部分变颜色主要代码实现如下:Graphics

就简单实现一下卡拉OK的字幕效果

* 字的颜色变化是线性变化,即随时间的线性变化  而不是按字的单位变颜色的

   所以有时候是字的一部分变颜色

主要代码实现如下:

            Graphics g = pea.Graphics;
            string str = "信号ねぇ あるわけねぇ 俺ら村には電気がねぇ!";

            Pen myPen = new Pen(Color.Red);
            SolidBrush backBr = new SolidBrush(Color.Blue);
            Font fOnt= new Font("MS UI Gothic", 40);

            g.DrawString(str, font, backBr, new Point(10, 10));  //background文字描画(blue)

            SizeF size = g.MeasureString(str, font);  //描画された文字のサイズを計測

            SolidBrush foreBr = new SolidBrush(Color.Red);  //foreground文字色(red)
            RectangleF rectF = new RectangleF(10, 10, 10, size.Height);  //forground文字の描画領域

            StringFormat strFmt = new StringFormat();
            strFmt.FormatFlags = StringFormatFlags.NoWrap;  //折り返し無し
            strFmt.Trimming = StringTrimming.None;          //切離し無し

            for (int w = 1; w <= size.Width; w += 1)
            {
                rectF.Width = w;

                try {
                    //g.DrawRectangle(Pens.Blue, rectF.Left, rectF.Top, rectF.Right, rectF.Bottom);
                    g.DrawString(str, font, foreBr, rectF, strFmt);  //foreground文字描画

                    Thread.Sleep(5);  //speed調整(動的に調整すること)
                    Application.DoEvents();
                } catch (Exception e)
                {
                    return;
                }//end try
            }//end for

具体的歌曲按照具体歌词的速率来调整 Sleep()就可以了。 这一部分可以写一个类,输入要显示的歌词,速度等信息,这个类在CDC上画出歌词。

仅供参考

 

 

 

 

  

 


推荐阅读
  • Explore a common issue encountered when implementing an OAuth 1.0a API, specifically the inability to encode null objects and how to resolve it. ... [详细]
  • golang常用库:配置文件解析库/管理工具viper使用
    golang常用库:配置文件解析库管理工具-viper使用-一、viper简介viper配置管理解析库,是由大神SteveFrancia开发,他在google领导着golang的 ... [详细]
  • 优化ListView性能
    本文深入探讨了如何通过多种技术手段优化ListView的性能,包括视图复用、ViewHolder模式、分批加载数据、图片优化及内存管理等。这些方法能够显著提升应用的响应速度和用户体验。 ... [详细]
  • 本文将介绍如何编写一些有趣的VBScript脚本,这些脚本可以在朋友之间进行无害的恶作剧。通过简单的代码示例,帮助您了解VBScript的基本语法和功能。 ... [详细]
  • 技术分享:从动态网站提取站点密钥的解决方案
    本文探讨了如何从动态网站中提取站点密钥,特别是针对验证码(reCAPTCHA)的处理方法。通过结合Selenium和requests库,提供了详细的代码示例和优化建议。 ... [详细]
  • 本文探讨了Hive中内部表和外部表的区别及其在HDFS上的路径映射,详细解释了两者的创建、加载及删除操作,并提供了查看表详细信息的方法。通过对比这两种表类型,帮助读者理解如何更好地管理和保护数据。 ... [详细]
  • 主要用了2个类来实现的,话不多说,直接看运行结果,然后在奉上源代码1.Index.javaimportjava.awt.Color;im ... [详细]
  • 题目描述:给定n个半开区间[a, b),要求使用两个互不重叠的记录器,求最多可以记录多少个区间。解决方案采用贪心算法,通过排序和遍历实现最优解。 ... [详细]
  • DNN Community 和 Professional 版本的主要差异
    本文详细解析了 DotNetNuke (DNN) 的两种主要版本:Community 和 Professional。通过对比两者的功能和附加组件,帮助用户选择最适合其需求的版本。 ... [详细]
  • 本章将深入探讨移动 UI 设计的核心原则,帮助开发者构建简洁、高效且用户友好的界面。通过学习设计规则和用户体验优化技巧,您将能够创建出既美观又实用的移动应用。 ... [详细]
  • 本文介绍如何使用 NSTimer 实现倒计时功能,详细讲解了初始化方法、参数配置以及具体实现步骤。通过示例代码展示如何创建和管理定时器,确保在指定时间间隔内执行特定任务。 ... [详细]
  • 本文介绍了如何通过 Maven 依赖引入 SQLiteJDBC 和 HikariCP 包,从而在 Java 应用中高效地连接和操作 SQLite 数据库。文章提供了详细的代码示例,并解释了每个步骤的实现细节。 ... [详细]
  • 本文介绍了在Windows环境下使用pydoc工具的方法,并详细解释了如何通过命令行和浏览器查看Python内置函数的文档。此外,还提供了关于raw_input和open函数的具体用法和功能说明。 ... [详细]
  • UNP 第9章:主机名与地址转换
    本章探讨了用于在主机名和数值地址之间进行转换的函数,如gethostbyname和gethostbyaddr。此外,还介绍了getservbyname和getservbyport函数,用于在服务器名和端口号之间进行转换。 ... [详细]
  • ImmutableX Poised to Pioneer Web3 Gaming Revolution
    ImmutableX is set to spearhead the evolution of Web3 gaming, with its innovative technologies and strategic partnerships driving significant advancements in the industry. ... [详细]
author-avatar
临别一眼_200910
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有