C#给背景色透明的GIF动画加水印文字后背景色不能保持透明了?? 参考http://blog.csdn.net/zgke/archive/2008/11/28/3401077.aspx你保存GIF的时候需要自己设置为透明 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 补充一个问题:我能不能不把加水印后的GIF动画保存到硬盘,而是直接输出流到aspx文件呢?比如说:bitPhoto.Save(Response.OutputStream, ImageFormat.Gif); 不知道该怎么操作,因为我不知道处理后的GIF动画还有没有bitmap 或者image 可以这样输出 bitPhoto.Save(Response.OutputStream, ImageFormat.Gif); 这样是可以的.. 那你知道怎么对GIF动画添加水印么,能不能给点代码我参考一下,我是网上找的别人的代码,但是写得好复杂,只知道用,好多东西看不懂,再就是GIF处理后的保存,似乎只能保存到硬盘再读出为流,能不能直接到内存中处理,不保存到硬盘呢? 如果是动画的GIF 你需要修改保存的方法了. 如果只是透明处理直接使用Image就可以做到的 看一下对比图吧,不知道哪里不对,我是用你的方法直接转换保存的ToImageGif(img).Save(Server.MapPath("img/test.gif")); Zgke.MyImage.ImageFile.ImageGif _Gif = new Zgke.MyImage.ImageFile.ImageGif(@"C:\hyzl.gif"); List<Image> _ImageList = new List<Image>(); for (int i = 0; i != _Gif.ImageCount; i++) { Image _SetImage = _Gif.GetImage(i); Bitmap _NewBitmap = new Bitmap(_SetImage.Width, _SetImage.Height); Graphics _Graphics = Graphics.FromImage(_NewBitmap); _Graphics.DrawImage(_SetImage, 0, 0); _Graphics.DrawString("A", this.Font, Brushes.Black, 0, 0); _Graphics.Dispose(); _ImageList.Add(_NewBitmap); } for (int i = 0; i != _ImageList.Count; i++) { _Gif.RemoveImage(0); } for (int i = 0; i != _ImageList.Count; i++) { _Gif.AddImage(_ImageList[i], 15, false, Zgke.MyImage.ImageFile.ImageGif.DisposalMethod.RestoreBackgroundColor); } _Gif.SaveFile(@"C:\1.gif");用到的类http://blog.csdn.net/zgke/archive/2009/01/06/3721389.aspx ToImageGif 的方法里 把你取到的色彩表放到Image里.. Graphics.Clear(Color.Transparent); 是这样么,可是这样处理出来的图片是黑色一片啊? 我不是太懂你说的做法,刚刚接触这个。还有就是,我发现如果用你的方法处理背景不透明的GIF,得到的图像反而严重失真,丢失色彩,或者可以说第一帧以后的帧都看不清了,有什么办法可以判断要处理的GIF是否是背景透明的呢?从而选择不同的处理方法 看看這個吧,似乎就是給動態GIF加數字水印后輸出的效果,可以做計數器但我的處理效果不行 gif类非常强大,学习了,但似乎在gif类里没有看见质量控制的语句,你参考一下吧:Graphics picture = Graphics.FromImage(img);picture.SmoothingMode = SmoothingMode.HighQuality;picture.TextRenderingHint = System.Drawing.Text.TextRenderingHint.ClearTypeGridFit;picture.CompositingQuality = CompositingQuality.HighQuality; 学习了 这个是我自己做的 gif水印 logo在线生成 http://www.zlinkz.com/Tool_creatLogo.aspx写在我的网站上了友情链接交换 asp.net+javascript视频圈套视频教程,欢迎大家下载学习 MediaPlayer全屏问题 一个关于winform的获得焦点的问题! 100分求个C#教程 看看这个list问题 c# winform 获取到的图片透明度都是255? 怎样对C#编写的打印程序进行测试 我怎样在lable中写出我从一个存储过程中发回的xml文件啊? C#中的Picturebox如何显示TIFF图像,着急... 为什么我的CSharp程序不能运行 寻找c#高手帮我看下这个页面的html代码该如何用c# winform下载 c#.DataGridview
这样是可以的..
那你知道怎么对GIF动画添加水印么,能不能给点代码我参考一下,我是网上找的别人的代码,但是写得好复杂,只知道用,好多东西看不懂,再就是GIF处理后的保存,似乎只能保存到硬盘再读出为流,能不能直接到内存中处理,不保存到硬盘呢?
看一下对比图吧,不知道哪里不对,我是用你的方法直接转换保存的
ToImageGif(img).Save(Server.MapPath("img/test.gif"));
Zgke.MyImage.ImageFile.ImageGif _Gif = new Zgke.MyImage.ImageFile.ImageGif(@"C:\hyzl.gif");
List<Image> _ImageList = new List<Image>();
for (int i = 0; i != _Gif.ImageCount; i++)
{
Image _SetImage = _Gif.GetImage(i); Bitmap _NewBitmap = new Bitmap(_SetImage.Width, _SetImage.Height);
Graphics _Graphics = Graphics.FromImage(_NewBitmap);
_Graphics.DrawImage(_SetImage, 0, 0);
_Graphics.DrawString("A", this.Font, Brushes.Black, 0, 0);
_Graphics.Dispose();
_ImageList.Add(_NewBitmap);
} for (int i = 0; i != _ImageList.Count; i++)
{
_Gif.RemoveImage(0);
}
for (int i = 0; i != _ImageList.Count; i++)
{
_Gif.AddImage(_ImageList[i], 15, false, Zgke.MyImage.ImageFile.ImageGif.DisposalMethod.RestoreBackgroundColor);
} _Gif.SaveFile(@"C:\1.gif");
用到的类
http://blog.csdn.net/zgke/archive/2009/01/06/3721389.aspx
Graphics.Clear(Color.Transparent); 是这样么,可是这样处理出来的图片是黑色一片啊?
我不是太懂你说的做法,刚刚接触这个。还有就是,我发现如果用你的方法处理背景不透明的GIF,得到的图像反而严重失真,丢失色彩,或者可以说第一帧以后的帧都看不清了,有什么办法可以判断要处理的GIF是否是背景透明的呢?从而选择不同的处理方法
Graphics picture = Graphics.FromImage(img);
picture.SmoothingMode = SmoothingMode.HighQuality;
picture.TextRenderingHint = System.Drawing.Text.TextRenderingHint.ClearTypeGridFit;
picture.CompositingQuality = CompositingQuality.HighQuality;
写在我的网站上了
友情链接交换