主页 > 知识库 > .net c# gif动画如何添加图片水印实现思路及代码

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

热门标签:电子围栏 Linux服务器 科大讯飞语音识别系统 服务器配置 银行业务 阿里云 团购网站 Mysql连接数设置
复制代码 代码如下:

public static Bitmap WaterMarkWithText(System.Drawing.Bitmap origialGif, string
text,string filePath)
{
//用于存放桢
ListFrame> frames = new
ListFrame>();
//如果不是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;
}
您可能感兴趣的文章:
  • C#判断一个图像是否是透明的GIF图的方法
  • C#中使用UDP通信的示例
  • c# 获取照片的经纬度和时间的示例代码
  • 大白话讲解C# 中的委托
  • C#中Write()和WriteLine()的区别分析
  • c# 动态构建LINQ查询表达式
  • 详解c# 协变和逆变
  • c# 播放声音的四种方法
  • C#实现窗体抖动的两种方法
  • c# 制作gif的四种方法

标签:衢州 江苏 枣庄 大理 萍乡 衡水 蚌埠 广元

巨人网络通讯声明:本文标题《.net c# gif动画如何添加图片水印实现思路及代码》,本文关键词  ;如发现本文内容存在版权问题,烦请提供相关信息告之我们,我们将及时沟通与处理。本站内容系统采集于网络,涉及言论、版权与本站无关。
  • 相关文章
  • 收缩
    • 微信客服
    • 微信二维码
    • 电话咨询

    • 400-1100-266