.net c# gif动画如何添加图片水印实现思路及代码学习
来源:互联网 发布:usb端口坏了怎么办 编辑:程序博客网 时间:2024/06/04 23:35
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;
}
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;
}
0 0
- .net c# gif动画如何添加图片水印实现思路及代码学习
- C# 添加图片水印类实现代码
- C# gif添加水印
- c#实现图片gif去水印
- asp.net实现图片添加文字及图片水印
- 利用ffmpeg实现添加图片水印和文字水印。代码和命令实现及中文水印乱码
- C# 添加 图片 水印
- c# 添加图片水印
- C#图片添加水印
- c#图片添加水印
- .net图片添加水印
- php gif图片加水印代码
- php gif图片加水印代码
- c# 使用Graphic 为图片添加水印 及文字
- 【代码】PHP 生成GIF动画实现动态图片验证码
- C#中添加图片水印
- C# 添加图片水印类
- C# 批量添加图片水印
- 1111
- 1111
- leetcode -day31 Subsets I II
- 递归创建二叉树
- jquery easyui Tab 引入页面的问题
- .net c# gif动画如何添加图片水印实现思路及代码学习
- 基数排序
- C++结构体之统计最高最低分
- Cocos2d-x JavaScript Binding结合CocosBuilder跨平台游戏开发简明教程
- 控制台颜色
- Ruby部分程序使用方法
- 反射
- ubunutu 12.04 下安装rvm
- 赵雅智_运用Bitmap和Canvas实现图片显示,缩小,旋转,水印