.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 session.timeout设置案例详解

    ASP.NET session.timeout设置案例详解

    这篇文章主要介绍了ASP.NET session.timeout设置案例详解,本篇文章通过简要的案例,讲解了该项技术的了解与使用,以下就是详细内容,需要的朋友可以参考下
    2021-08-08
  • 轻量级ORM框架Dapper应用之返回多个结果集

    轻量级ORM框架Dapper应用之返回多个结果集

    这篇文章介绍了使用Dapper返回多个结果集的方法,文中通过示例代码介绍的非常详细。对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2022-03-03
  • ASP.NET实现将word文档转换成pdf的方法

    ASP.NET实现将word文档转换成pdf的方法

    这篇文章主要介绍了ASP.NET实现将word文档转换成pdf的方法,包含了两种实现方法进行比对分析,非常具有实用价值,需要的朋友可以参考下
    2014-10-10
  • asp.NET开发中正则表达式中BUG分析

    asp.NET开发中正则表达式中BUG分析

    又发现了一个 .net的bug!最近在使用正则表达式的时候发现:在忽略大小写的时候,匹配值从 0xff 到 0xffff 之间的所有字符,正则表达式竟然也能匹配两个 ASCII 字符:i(code: 0x69) 和 I(code: 0x49);但是仍然不能匹配其他的 ASCII 字母和数字。
    2008-10-10
  • AspNetPager+GridView实现分页的实例代码

    AspNetPager+GridView实现分页的实例代码

    AspNetPager+GridView实现分页的实例代码,需要的朋友可以参考一下
    2013-03-03
  • Asp.net中DataTable导出到Excel的方法介绍

    Asp.net中DataTable导出到Excel的方法介绍

    本篇文章介绍了,Asp.net中DataTable导出到Excel的方法。需要的朋友参考下
    2013-05-05
  • 深入.net调用webservice的总结分析

    深入.net调用webservice的总结分析

    本篇文章是对.net调用webservice进行了详细的总结与分析,需要的朋友参考下
    2013-05-05
  • ASP.NET Core中如何实现重定向详解

    ASP.NET Core中如何实现重定向详解

    这篇文章主要给大家介绍了关于ASP.NET Core中如何实现重定向的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2021-01-01
  • 比较完整的 asp.net 学习流程

    比较完整的 asp.net 学习流程

    好多朋友想学习后台编程语言,但请注意的事,学习后台是个循序渐进的过程,不可能一下就到位,其实不只是asp.net其它的编程语言都需要下面的一些知识。
    2009-06-06
  • asp.net微信开发(自定义会话管理)

    asp.net微信开发(自定义会话管理)

    这篇文章主要介绍了asp.net微信开发中有关自定义会话管理的相关内容,需要的朋友可以参考下
    2015-11-11

最新评论