QQ歌词卡拉ok的效果是如何实现的?

hjx398 2008-07-31 09:56:41

上面图片的“19周+0天”是我用.net画的。
“让剪影斑驳”这句是QQ音乐的歌词卡拉ok的效果
请问“QQ音乐”它的文字怎么会有边框效果的?而且一点锯齿都没有它又是如何实现的。
还有它这样地效果是用GDI+化出来的吗?

//以下是我画字的代码

Bitmap bmp = new Bitmap(380, 220);
Graphics g = Graphics.FromImage(bmp);
g.SmoothingMode = SmoothingMode.HighSpeed;
g.TextRenderingHint = System.Drawing.Text.TextRenderingHint.AntiAlias;
//g.TextContrast = 8;
//g.InterpolationMode = InterpolationMode.HighQualityBilinear;
Matrix mx = new Matrix(0.25f, 0, 0, 0.25f, 3, 3);
g.Transform = mx;

Font font = new Font("幼圆", 188,FontStyle.Bold);
g.DrawString(this.label2.Text, font, new SolidBrush(Color.FromArgb(128, Color.Black)),0, 0, StringFormat.GenericTypographic);

LinearGradientBrush 渐变 = new LinearGradientBrush(new Rectangle(0, 0, 500, 500), Color.OrangeRed, Color.Blue, LinearGradientMode.Vertical);
g.DrawString(this.label2.Text, font, 渐变, 0, 0,StringFormat.GenericTypographic);
this.pictureBox1.Image = bmp;
...全文
1810 38 打赏 收藏 转发到动态 举报
写回复
用AI写文章
38 条回复
切换为时间正序
请发表友善的回复…
发表回复
cqwuxiaolong 2010-04-01
  • 打赏
  • 举报
回复
很强大 关注 还得保证别人的桌面图标在你写的字下面能够被点击
feifly789 2008-10-23
  • 打赏
  • 举报
回复
我现在也很烦脑啊,没有一点头绪
yanjinghong 2008-09-08
  • 打赏
  • 举报
回复
我也想做出这个效果,查找资料也没有头绪,不知用了什么技术,关注....
rodney1983 2008-08-08
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 jason_mf 的回复:]
关注
[/Quote]
「已注销」 2008-08-08
  • 打赏
  • 举报
回复
看了看它的歌词模块的导入表
除了GDI+,没有什么其它特别的东西,应该是GDI+做的
GDI+做这种效果应该是没问题的
chuxue1342 2008-08-08
  • 打赏
  • 举报
回复
强大如此!
windboyzsj 2008-08-08
  • 打赏
  • 举报
回复


我也试试,效果感觉还不错,但换成透明背景可能还要处理一下


string str = "如果你是我就会懂";
Bitmap bmp = new Bitmap(Size.Width,Size.Height);
Graphics g = Graphics.FromImage(bmp);
g.TextRenderingHint = System.Drawing.Text.TextRenderingHint.AntiAlias;
Font font = new Font("幼圆", 60, FontStyle.Bold);
SizeF sizef = g.MeasureString(str, font);
int width = (int)sizef.Width;
int height =(int)sizef.Height;

g.DrawString(str, font, new SolidBrush(Color.White), 0, 0, StringFormat.GenericTypographic);
LinearGradientBrush lg = new LinearGradientBrush(new Rectangle(0, 0, width, height), Color.Empty, Color.Empty, LinearGradientMode.Vertical);
ColorBlend cb = new ColorBlend(4);
cb.Colors = new Color[] { Color.FromArgb(153, 213, 248), Color.FromArgb(66, 147, 231), Color.FromArgb(18, 100, 184), Color.FromArgb(86, 167, 243) };
cb.Positions = new float[]{0f,0.5f,0.5f,1f};

lg.InterpolationColors = cb;
g.DrawString(str, font, lg, 2, 2, StringFormat.GenericTypographic);
this.pictureBox1.Size = new Size(width, height);
this.pictureBox1.Image = bmp;
wanghui0380 2008-08-08
  • 打赏
  • 举报
回复
看了lz的图

lz的图有锯齿,是因为你不是用的矢量文字。

在flash里使用“打散”功能后,文件就会成矢量的,这样放大就不会有锯齿效果了

至于卡拉ok效果,那个就是一个遮罩功能
ccimage 2008-08-08
  • 打赏
  • 举报
回复
更正一下刚刚的回复。
刚看了一下QQmusic.exe的线程和加载的Dll,发现有Gdi+,Directx还有Flash.ocx(两个线程)。
因为gdi+可能是使用在皮肤上,directx是用于播放声音,这个歌词还真的有可能是flash。
当然Flash也有可能是用于播放广告的。
ccimage 2008-08-08
  • 打赏
  • 举报
回复
不可能QQ会使用Flash。代码怎么交互啊? 拖到歌曲的时间能反映到Flash中?

如果不是GDI+,就是Directx
GhostAdai 2008-08-08
  • 打赏
  • 举报
回复
[Quote=引用 28 楼 hjx398 的回复:]
用flash还是无法做到,结果如下图,上面一行字是我用flash写的,和它(QQ音乐)写的下一行出入很大,


[/Quote]

没看出来区别在哪儿?边缘的锯齿吗?用Flash做的应该没有的呀。
再见品月 2008-08-08
  • 打赏
  • 举报
回复
[Quote=引用 25 楼 f800051235 的回复:]
引用 8 楼 ss128 的回复:
感觉很简单,是白痴都会做

装A装C千万不要装B
[/Quote]
hjx398 2008-08-08
  • 打赏
  • 举报
回复
用flash还是无法做到,结果如下图,上面一行字是我用flash写的,和它(QQ音乐)写的下一行出入很大,


x55859000 2008-08-07
  • 打赏
  • 举报
回复
不是C#的功能.....

你难道没有看出来那是个透明Flash么...

歌词加载的就是里面显示的字.....
RichardSzwz 2008-08-07
  • 打赏
  • 举报
回复
高手进!
a12321321321312321 2008-08-07
  • 打赏
  • 举报
回复
[Quote=引用 8 楼 ss128 的回复:]
感觉很简单,是白痴都会做
[/Quote]
装A装C千万不要装B
GhostAdai 2008-08-07
  • 打赏
  • 举报
回复
http://www.flashempire.com/
闪客帝国,你想要的效果这上面有更炫的。教学、例子、源码一应俱全。
hjx398 2008-08-07
  • 打赏
  • 举报
回复
用flash可以实现文字效果了,可是要实现卡拉ok效果还真的是不容易呀,有哪位有完整的代码或者是例子贴出来,或发到我的邮箱:127519078@163.com
破咖啡罐子 2008-08-07
  • 打赏
  • 举报
回复
[Quote=引用 8 楼 ss128 的回复:]
感觉很简单,是白痴都会做
[/Quote]
请问你会不会做呢?
GhostAdai 2008-08-07
  • 打赏
  • 举报
回复
补充:颜色渐变用Flash更简单,改变一下填充方式就可以,你的图只是同一种颜色的渐变,想让它七彩渐变都不是难事。
加载更多回复(18)
MVBOX更新日志: 1. 优化程序启动流程,启动更快 2. 优化列表显示,加载歌曲列表更快,资源占用更小 3. 优化下载管理,减少下载资源占用 4. 解决Mvbox在QQ6.0群视频不能上麦问题 5. 解决启动时无响应问题 MVBOX 是一款集音频、视频于一体的多媒体娱乐软件,它具有最新、最快、最全的高音质流行歌曲和丰富的网络原创歌曲KTV资源,通过它您不仅可以在线听歌、K歌,还可以高质量的录制自己的卡拉OK歌曲和有清晰画面的MTV;同时,MVBOX还给您提供了强大的虚拟视频功能,使您在与他人使用QQ、UC、MSN等进行视频聊天时,可以很方便的利用画中画、调色板、滤镜和抠象、特效等功能来美化您的摄象头;您既可以播放电影、MTV、图片到虚拟摄像头与网友共享,还可以对您的视频或照片添加各种大头贴特效,从此使您的视频更加绚丽多彩,不再单调,为您创造一个虚幻的魅力世界,让您在朋友中以靓丽的形象脱颖而出; MVBOX的清晰视频捕获功能,很方便的让您与朋友互动交流、在线实时演示、网上教学和转播网络电视电影;高保真的录音录像功能还可以使您很方便的录制自己想要的网络资源并可DIY制作您的MTV作品。该软件拥有小巧精致、操作简捷、不占资源、功能强大的特点,深得用户喜爱,并且成为目前国内最受欢迎的简单实用的卡拉OK音乐播放和虚拟视频软件。 MvBox卡拉OK播放器特点: 1. 卡拉OK播放功能: MVBOX具有强大的卡拉OK功能,用户可以方便的随意切换左右声道来使用原唱和伴奏,可以自动消原音,调节升降调,设置声音特效,空间效果等;并能同步显示卡拉Ok歌词字幕,可以欣赏高品质音乐和MTV;MVBOX兼容MP3、WMA、WMV,MPG,FLV,SWF等多种流行格式的音视频文件,并提供音视频解码器的下载。 2. 搜索下载功能: MVBOX提供强大的搜索功能,在MVBOX点歌台里用户可以方便的搜索到歌曲,图片、视频、特效等素材。超大歌词库,最新、最快、最全的流行歌曲和网络原创歌曲资源;提供多种方式点歌,方便灵活,支持KSC和LRC歌词显示。大量丰富的图片、视频、特效等素材应有尽有,高速服务器下载更令您一爽到底。 3. 列表管理功能: 强大的列表功能方便网友管理自己的图片、视频、歌曲和作品等素材;通过列表窗口对歌曲、图片、视频、特效、摄像头、作品进行个性化的分类管理。方便查找歌曲和素材,并可以对全站的内容进行关键字搜索查找。 4. 视频播放功能: 视频窗口既可以用来显示用户选择的背景图片、视频,还可以选择模式播放MTV、电影;既可以播放本地的视频文件。也可以在线播放网络视频资源;不仅能实现视频、图片、摄像头取景以及合成效果,同时还可以添加大头贴特效,实现虚拟视频、画中画、摄像头抠像、文字滚动字幕、视频捕捉等多种视频特效,进行多个视频特效的叠加;另外在用户播放歌曲时还会有歌词字幕同步流动出现在视频窗口下方,新颖独特;并支持视频窗口拖动大小显示和全屏显示。 5. 图片动态慢摇功能图片切换慢摇效果可以使您的静态图片视频化,其中的随机推拉、缩放、旋转能给您带来不同角度的动态视频效果的冲击,从而能很简单方便的去定制自己的电子相册和MTV。 6. 虚拟摄像头功能: 它能在您电脑上模拟一个摄像头,您可以用MVBOX在任何支持摄像头的聊天软件(UC、QQ、MSN、E话通、碧聊、呱呱等等)里面唱歌、跳舞、播放电影、MTV、图片到虚拟摄像头与网友共享;可对您的视频或照片添加各种特效,还可对屏幕窗口进行转播或录制。 MvBox卡拉OK播放器功能: 1、新增音乐均衡器,提高音质 2、新增歌曲列表序号,方便歌曲定位查找 3、改进摄像头采集算法,使视频更顺畅 4、改进虚拟声卡,消除WIN7下MKA格式歌曲噪声现象 5、改进MKA解码器,使音乐播放更稳定 6、改进下载算法,使文件下载更快 7、支持在线播放Mtv文件下载功能  MvBox卡拉OK播放器截图:
YOYOPlayer1.0版推出之后,得到了一些朋友的认可和反馈,经过这段时间的修改,现在推出YOYOPlayer1.1版.相对于1.0版,改进的地方如下:
一,设置方面
1,增加了首选项的功能,很多方面现在已经可以配置
二,歌词方面
1,增加了歌词搜索的自主性,用户可以选择自定义搜索关键字,也可以自定义是否和歌词文件相关联,这里的关联并不是把歌词写入歌曲文件,而是在程序中建立一种关联,以免每次播放这首歌的时候都去搜索歌词,而是直接去读取关联好的歌词文件.
2,增加了指定歌词的搜索目录,指定歌词的保存目录功能.为了性能考虑,歌词的搜索目录不会往下递归,只搜索设置的那一级目录.
3,歌词的设置更为丰富,很多地方以前是固定的,现在都是可以改变的,并且增加了纵向显示歌词卡拉OK显示功能,还支持字体是否抗锯齿显示的选项.
4,支持淡入淡出显示歌词,支持多种对齐方式.
5,在windows下面支持歌词窗口的透明显示.在linux下面,此选项将被禁用:(
三,标签方面
1,现在完全支持ID3v1,ID3v2,APEv2,Vorbis标签的读取和写入,并可设置标签的读取和写入的编码.以免在读取标签的时候出现乱码的情况.程序的默认设置编码是GBK,如果是UTF-8的用户,可以在首选项修改.
四,其它方面
1,可以选择音频设备,这在一定程度上可以选择几个设置对比一下效果.尽量减少播放器没有声音的情况.
2,增加在任务栏滚动显示歌曲标题.
3,支持设置代理服务器连接网络.
4,支持对播放列表进行一些细化的设置,因为程序预设的颜色不一定符合大家的审美观.
5,配置目录现在改为{user.home}/.YOYOPlayer/,默认的歌词目录是{user.home}/.YOYOPlayer/Lyrics/

在首选项里在的还有很多功能没有实现,因为个人的精力实在有限,YOYOPlayer项目已经在sourceforge.net和java.net申请了项目,正在审核中,等审核通过了,欢迎大家加入到开发和维护YOYOPlayer的行列中.在java.net上的地址是:
https://yoyoplayer.dev.java.net

在使用的过程中,有任何问题,欢迎到http://www.blogjava.net/hadeslee或者http://www.luge.cn/bbs/上留言.也可以加本人的QQ:24325142.希望和大家一起探讨JAVA问题,让JAVA的浓香飘的更远.
其实本人也希望打包成ZIP格式,可是ZIP的压缩率没有RAR高,并且blogjava只支持2000KB的文件,所以只能打包成RAR格式的,还望大家见谅.最后,谢谢我的女友YOYO这段时间以来以我的关心和鼓励.

110,577

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧