.net c# gif动画如何添加图片水印实现思路及代码

 更新时间:2013年03月12日 16:59:38   作者:  
本文将详细介绍下c#实现gif动画添加图片水印,思路很清晰,感兴趣的你可以参考下哈,希望可以帮助到你
复制代码 代码如下:

public static Bitmap WaterMarkWithText(System.Drawing.Bitmap origialGif, string
text,string filePath)
{
//用于存放桢
List<Frame> frames = new
List<Frame>();
//如果不是gif文件,直接返回原图像
if (origialGif.RawFormat.Guid
!= System.Drawing.Imaging.ImageFormat.Gif.Guid)
{
return origialGif;

}
//如果该图像是gif文件
foreach (Guid guid in
origialGif.FrameDimensionsList)
{
System.Drawing.Imaging.FrameDimension
frameDimension = new System.Drawing.Imaging.FrameDimension(guid);
int
frameCount = origialGif.GetFrameCount(frameDimension);
for (int i = 0; i
< frameCount; i++)
{
if (origialGif.SelectActiveFrame(frameDimension,
i) == 0)
{
int delay =
Convert.ToInt32(origialGif.GetPropertyItem(20736).Value.GetValue(i));
Image
img = Image.FromHbitmap(origialGif.GetHbitmap());
Font font = new Font(new
FontFamily("宋体"), 35.0f,FontStyle.Bold);
Graphics g =
Graphics.FromImage(img);
g.DrawString(text, font, Brushes.BlanchedAlmond,
new PointF(10.0f, 10.0f));
Frame frame = new Frame(img, delay);

frames.Add(frame);
}
}
Gif.Components.AnimatedGifEncoder gif =
new Gif.Components.AnimatedGifEncoder();
gif.Start(filePath);

gif.SetDelay(100);
gif.SetRepeat(0);
for (int i = 0; i <
frames.Count; i++)
{
gif.AddFrame(frames[i].Image);
}

gif.Finish();
try
{
Bitmap gifImg =
(Bitmap)Bitmap.FromFile(filePath);
return gifImg;
}
catch
{

return origialGif;
}
}
return origialGif;
}

相关文章

  • asp.net 支持多语言站点的实现方法

    asp.net 支持多语言站点的实现方法

    asp.net 支持多语言站点的实现方法,对于想用asp.net做多语言网站的朋友可以参考下,充分发挥asp.net的功能。
    2010-03-03
  • 如何判断 .NET Core 应用程序以管理员身份运行的

    如何判断 .NET Core 应用程序以管理员身份运行的

    这篇文章主要介绍了如何判断 .NET Core 应用程序是以管理员身份运行的,我们需要知道当前程序是否以管理员身份运行,以便执行一些需要特殊权限的操作,下面为我们就来学习具体的方法吧,需要的朋友可以参考一下
    2022-03-03
  • asp.net EXECUTENONQUERY()返回值介绍

    asp.net EXECUTENONQUERY()返回值介绍

    前些日子作一些数据项目的时候 在ADO.NET 中处理 ExecuteNonQuery()方法时,总是通过判断其返回值是否大于0来判断操作时候成功 。但是实际上并不是这样的,下面详细介绍一下,有需要的朋友可以参考
    2013-08-08
  • ASP.NET中的Cache使用介绍

    ASP.NET中的Cache使用介绍

    这篇文章主要介绍了ASP.NET中的Cache使用介绍,本文讲解了Cache 是怎么工作的、Cache 怎么创建及怎么销毁、什么时候用cache、cache 调用注意事项等内容,需要的朋友可以参考下
    2015-06-06
  • Asp.net实现手写验证码的操作代码

    Asp.net实现手写验证码的操作代码

    这篇文章主要介绍了Asp.net实现手写验证码的操作代码,首先我们来实现生成 生成验证码的这一部分,这时候我们需要封装一个类,里面有生成图片和字符的方法,其实本质上就是一个随机数,这个类卸载Model里面即可,具体操作代码跟随小编一起看看吧
    2024-05-05
  • .NET Core基于EMIT编写的轻量级AOP框架CZGL.AOP

    .NET Core基于EMIT编写的轻量级AOP框架CZGL.AOP

    这篇文章介绍了.NET Core基于EMIT编写的轻量级AOP框架CZGL.AOP,文中通过示例代码介绍的非常详细。对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2022-02-02
  • ASP.net(C#)从其他网站抓取内容并截取有用信息的实现代码

    ASP.net(C#)从其他网站抓取内容并截取有用信息的实现代码

    ASP.net(C#)从其他网站抓取内容并截取有用信息的实现代码,需要的朋友可以参考下。
    2011-09-09
  • Asp.Net Core2.1前后使用HttpClient的两种方式

    Asp.Net Core2.1前后使用HttpClient的两种方式

    这篇文章主要给大家介绍了关于Asp.Net Core2.1前后HttpClient的使用方式,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面来一起学习学习吧
    2019-03-03
  • .NET 中的装箱与拆箱实现过程

    .NET 中的装箱与拆箱实现过程

    本文分别介绍装箱(boxing)与拆箱(unboxing)的实现过程,感兴趣的朋友可以了解下
    2013-01-01
  • asp.net fileupload控件上传文件与多文件上传

    asp.net fileupload控件上传文件与多文件上传

    这篇文章主要介绍了asp.net fileupload控件上传文件的方法,fileupload控件多文件上传,以及fileupload上传时实现文件验证的方法,需要的朋友可以参考下
    2014-11-11

最新评论