using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Windows.Forms; using System.IO; namespace giftest { public partial class Form1 : Form { public Form1() { InitializeComponent(); } /// <summary> /// [颜色:RGB转成16进制] /// </summary> /// <param name="R">红 int</param> /// <param name="G">绿 int</param> /// <param name="B">蓝 int</param> /// <returns></returns> public static string colorRGBtoHx16(int R, int G, int B) { return System.Drawing.ColorTranslator.ToHtml(System.Drawing.Color.FromArgb(R, G, B)); } private static string ToHexColor(Color color) { string R = Convert.ToString(color.R, 16); if (R == "0") R = "00"; string G = Convert.ToString(color.G, 16); if (G == "0") G = "00"; string B = Convert.ToString(color.B, 16); if (B == "0") B = "00"; string HexColor = "#" + R + G + B; return HexColor; } public static Color retrieveRGBComponent(int color) { var r = color >> 16; var g = (color >> 8) & 0xff; var b = color & 0xff; return Color.FromArgb(r,g,b); } /** * 红色,绿色和蓝色三色组合 */ public static Color generateFromRGBComponent(Color rgb) { if( rgb == null || rgb.R < 0 || rgb.R > 255 || rgb.G < 0 || rgb.G > 255 || rgb.B < 0 || rgb.B > 255) return Color.Black; return rgb; } /** * color1是浅色,color2是深色,实现渐变 * steps是指在多大的区域中渐变, */ public static List<Color> generateTransitionalColor(Color color1, Color color2, int steps) { List<Color> colors = new List<Color>(); if( steps < 3 ) { return null; } Color color1RGB = color1; Color color2RGB = color2; colors.Add(color1); steps = steps - 2; var redDiff = color2RGB.R - color1RGB.R; var greenDiff = color2RGB.G - color1RGB.G; var blueDiff = color2RGB.B - color1RGB.B; for( var i = 1; i < steps - 1; i++) { var tempRGB = Color.FromArgb( color1RGB.R + redDiff * i / steps, color1RGB.G + greenDiff * i / steps, color1RGB.B + blueDiff * i / steps ); colors.Add(tempRGB); } colors.Add(color2); return colors; } //生成动画代码 private void button1_Click(object sender, EventArgs e) { AnimatedGifEncoder gif = new AnimatedGifEncoder(); gif.Start("hello.gif"); gif.SetRepeat(0); gif.SetDelay(400); gif.SetFrameRate(24); //生成渐变颜色数据 List<Color> colors = generateTransitionalColor(Color.Blue, Color.Red, 30); List<Color> colors2 = generateTransitionalColor(Color.GreenYellow, Color.Red, 30); int index=0; foreach (Color color in colors) { Bitmap bit = new Bitmap(200, 100);//2个100*100的渐变图片 Graphics g=Graphics.FromImage(bit); g.FillRectangle(new SolidBrush(color), 0, 0, 100, 100); g.FillRectangle(new SolidBrush(colors2[index]), 100, 0, 100, 100); index++; gif.AddFrame(bit); g.Dispose(); bit.Dispose(); } gif.Finish(); } } }
相关推荐
本文实例讲述了JS实现的透明度渐变动画效果。分享给大家供大家参考,具体如下: <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>www.jb51.net JS透明度变化效果</...
28 实例028 为触摸屏程序添加虚拟键盘 29 1.8 窗体效果 30 实例029 半透明渐显窗体 31 实例030 窗口颜色的渐变 32 1.9 窗体动画 33 实例031 窗体中的滚动字幕 33 实例032 动画...
案例1.5 半透明渐显动画和渐变窗体 案例1.6 浮动的窗体 案例1.7 在屏幕中央并总在最前窗体 案例1.8 椭圆形窗体 案例1.9 可移动的五边形窗体 案例1.10 文字窗体 案例1.11 动态滑入滑出的闪烁窗体 案例1.12 以...
关于计算机毕业实习报告介绍全文共5页,当前为第1页。... 单击"星座物语",进入内容左侧的字体是fireworks编辑的gif动画。左侧下方是篇有关星座的文章,右侧的星座专题有三个关于星座的内容可单击。'漂亮穿
119 利用Image控件制作小动画 cc实例120 透明的Flash动画 cc实例121 播放GIF动画 cc实例122 播放AVI动画 cc实例123 播放VCD 4.2 制作与播放音频 cc实例124 可以选择播放曲目的CD播放器 cc实例125 MP3...
实例183 使窗体背景色渐变 236 实例184 随机更换主界面背景 237 实例185 磁性窗体的设计 238 实例186 制作鼠标穿透窗体 246 实例187 窗体换肤程序 247 8.4 窗体动画 250 实例188 窗体中的滚动字幕 250 实例189 动画...
实例188 播放GIF动画 273 实例189 利用Image制作小动画 274 5.4 媒体控制 275 实例190 检测是否安装声卡 275 实例191 打开和关闭CDROM 276 实例192 控制PC喇叭发声 277 实例193 获取显示设备的名称及...
实例188 播放GIF动画 273 实例189 利用Image制作小动画 274 5.4 媒体控制 275 实例190 检测是否安装声卡 275 实例191 打开和关闭CDROM 276 实例192 控制PC喇叭发声 277 实例193 获取显示设备的名称及...
实例188 播放GIF动画 273 实例189 利用Image制作小动画 274 5.4 媒体控制 275 实例190 检测是否安装声卡 275 实例191 打开和关闭CDROM 276 实例192 控制PC喇叭发声 277 实例193 获取显示设备的名称及...
实例188 播放GIF动画 273 实例189 利用Image制作小动画 274 5.4 媒体控制 275 实例190 检测是否安装声卡 275 实例191 打开和关闭CDROM 276 实例192 控制PC喇叭发声 277 实例193 获取显示设备的名称及...