`

gif 渐变动画 .net

    博客分类:
  • .net
 
阅读更多
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();

            
        }
    }
}

 

 

 

  • 大小: 34.3 KB
分享到:
评论

相关推荐

    asp.net前台显示后台处理进度条

    例如,可以设置loading.gif图片为渐变动画,或者使用CSS3创建一个纯色进度条。 ```css .loading-mask { position: fixed; top: 0; left: 0; width: 100%; height: 100%; z-index: 9999; background-color: ...

    JS实现的透明度渐变动画效果示例

    本文实例讲述了JS实现的透明度渐变动画效果。分享给大家供大家参考,具体如下: &lt;!DOCTYPE html&gt; &lt;html&gt; &lt;head&gt; &lt;meta charset="utf-8"&gt; &lt;title&gt;www.jb51.net JS透明度变化效果&lt;/...

    VC 在启动窗口时显示动画效果和文字渐变.rar

    在VC++编程环境中,创建一个启动窗口时...通过研究并实践这个示例,不仅可以掌握如何在窗口启动时添加动画效果,还能学习到文字渐变、GIF动画播放以及Windows消息机制的相关知识,这些都是提升软件用户体验的重要技能。

    C#.net_经典编程例子400个

    28 实例028 为触摸屏程序添加虚拟键盘 29 1.8 窗体效果 30 实例029 半透明渐显窗体 31 实例030 窗口颜色的渐变 32 1.9 窗体动画 33 实例031 窗体中的滚动字幕 33 实例032 动画...

    Visual C#.NET 2008程序设计案例集锦 (源码)

    案例1.5 半透明渐显动画和渐变窗体 案例1.6 浮动的窗体 案例1.7 在屏幕中央并总在最前窗体 案例1.8 椭圆形窗体 案例1.9 可移动的五边形窗体 案例1.10 文字窗体 案例1.11 动态滑入滑出的闪烁窗体 案例1.12 以...

    ImageMagick

    此外,它还可以处理透明度、动画GIF以及图像序列,非常适合用于制作网页图像或处理视频帧。 在安全方面,ImageMagick也给予了高度重视,尤其是在处理用户上传的图像时,它能防止某些类型的注入攻击,如MagickWand...

    动态图片制作

    动态图片,通常指的是GIF格式的图像,它能够在单一文件中包含多帧图像,从而实现循环播放的效果,常用于创建有趣的动画或者简单的演示。在IT领域,制作动态图片是一种常见的视觉传达技巧,尤其在网络社交、广告设计...

    圆点旋转的经典Flash Loading动画

    在Flash8中,设计师可以通过图层管理、形状补间、颜色渐变等多种工具实现这些创意。 关于提供的压缩包文件"okbase.net",虽然没有详细内容,但通常情况下,这可能包含以下几部分: 1. fla文件:这是Flash源文件,...

    程序加载前的等待窗体

    对于“电影序幕式”的效果,可以考虑使用GIF动画或者自定义的动画序列。 VB6中的代码实现这部分功能,可以使用定时器控件(Timer)。定时器每隔一定时间触发事件,更新进度条和窗体的背景颜色,从而实现渐变效果。...

    c#+WINFORM+漂亮的软件启动界面特效源码

    2. **资源管理**:启动界面可能包含一系列静态图片或GIF动画,这些需要在程序中正确加载和播放。 3. **事件处理**:当动画结束或达到某个条件时,启动界面需要关闭,应用程序的主窗口需要打开。这需要定义和处理相应...

    简单图形控件支持PNG等透明格式

    通过调整控件的透明度,开发者还可以实现动态效果,如渐变显示或过渡动画。 总的来说,通过LJYImage.ocx控件,开发者可以轻松地在应用程序中处理和支持PNG等透明格式的图像,提高GUI的质量和用户体验。结合提供的...

    动态背景,动态蓝天白云例子

    在网页设计中,动态背景可以是视频、GIF图像或通过CSS3动画来创建的静态图像序列。在这个例子中,我们可能使用CSS3的`@keyframes`规则来定义一个动画,该动画使蓝天白云逐渐改变,从而产生运动感。例如,我们可以...

    FuturixImager优秀的图像浏览工具V6.0.2绿色版

    特别是对于GIF动图的支持,FuturixImager允许用户轻松编辑帧动画,无论是创建还是修改都十分便捷。 在标签“图形图像”下,FuturixImager的出色表现不容忽视。软件内置了丰富的图像滤镜和特效,包括模糊、锐化、...

    SwishMax

    5. **导出和发布**:完成的动画作品可以导出为SWF格式,可以直接在Web上播放,也可以导出为其他格式,如GIF、AVI或JPG,适应不同的展示需求。 6. **模板和资源**:SwishMax社区提供了大量的模板和资源,用户可以...

    漂亮的HTML5网页播放器特效.rar

    在描述中提到的播放器特效很可能就运用了CSS3的特性,比如渐变、阴影、边框半径、转换(transform)和动画(animation)。这些特性可以让播放器的界面看起来更加美观且动态,如按钮悬停效果、播放/暂停状态的平滑...

    C# Winform漂亮菜单

    在C#中实现QQ风格菜单,可能需要自定义控件,结合GDI+或WPF的图形绘制功能,以及动画和过渡效果的编程技巧。 4. **源码下载**:压缩包中的`.cs`文件,如`Form1.cs`和`CoolMenu.cs`,是C#的源代码文件,包含了程序的...

    html+css实现的PK进度条.根据双主的数据生成相应长度的红色蓝色条

    4. **动画效果**:为了增加用户体验,可以添加过渡动画。使用`transition`属性指定在宽度变化时的平滑过渡时间。 5. **响应式设计**:考虑页面在不同设备上的显示,可能需要使用媒体查询(`@media`)来调整进度条的...

    ImageEdit OCX 源码

    4. 动画支持:对于GIF等支持动画格式的图片,ImageEdit OCX也能进行播放和编辑。 5. 用户界面:控件提供了丰富的事件处理机制,允许开发者自定义交互行为,例如鼠标点击、拖放等。 6. 兼容性:由于其OCX特性,...

    (5)silverlight应用图片

    Silverlight是一个基于.NET Framework的插件,支持多种操作系统和浏览器,如Windows和Mac OS,以及Internet Explorer、Firefox、Safari和Chrome等。它的目标是与Adobe Flash竞争,提供跨平台的多媒体和互动内容解决...

Global site tag (gtag.js) - Google Analytics