时间:2021-07-01 10:21:17 帮助过:18人阅读
- <br>public static Bitmap WaterMarkWithText(System.Drawing.Bitmap origialGif, string <br>text,string filePath) <br>{ <br>//用于存放桢 <br>List<Frame> frames = new <br>List<Frame>(); <br>//如果不是gif文件,直接返回原图像 <br>if (origialGif.RawFormat.Guid <br>!= System.Drawing.Imaging.ImageFormat.Gif.Guid) <br>{ <br>return origialGif; <br><br>} <br>//如果该图像是gif文件 <br>foreach (Guid guid in <br>origialGif.FrameDimensionsList) <br>{ <br>System.Drawing.Imaging.FrameDimension <br>frameDimension = new System.Drawing.Imaging.FrameDimension(guid); <br>int <br>frameCount = origialGif.GetFrameCount(frameDimension); <br>for (int i = 0; i <br>< frameCount; i++) <br>{ <br>if (origialGif.SelectActiveFrame(frameDimension, <br>i) == 0) <br>{ <br>int delay = <br>Convert.ToInt32(origialGif.GetPropertyItem(20736).Value.GetValue(i)); <br>Image <br>img = Image.FromHbitmap(origialGif.GetHbitmap()); <br>Font font = new Font(new <br>FontFamily("宋体"), 35.0f,FontStyle.Bold); <br>Graphics g = <br>Graphics.FromImage(img); <br>g.DrawString(text, font, Brushes.BlanchedAlmond, <br>new PointF(10.0f, 10.0f)); <br>Frame frame = new Frame(img, delay); <br><br>frames.Add(frame); <br>} <br>} <br>Gif.Components.AnimatedGifEncoder gif = <br>new Gif.Components.AnimatedGifEncoder(); <br>gif.Start(filePath); <br><br>gif.SetDelay(100); <br>gif.SetRepeat(0); <br>for (int i = 0; i < <br>frames.Count; i++) <br>{ <br>gif.AddFrame(frames[i].Image); <br>} <br><br>gif.Finish(); <br>try <br>{ <br>Bitmap gifImg = <br>(Bitmap)Bitmap.FromFile(filePath); <br>return gifImg; <br>} <br>catch <br>{ <br><br>return origialGif; <br>} <br>} <br>return origialGif; <br>} <br>