参考
http://blog.csdn.net/zgke/archive/2008/11/28/3401077.aspx你保存GIF的时候需要自己设置为透明

解决方案 »

  1.   

    补充一个问题:我能不能不把加水印后的GIF动画保存到硬盘,而是直接输出流到aspx文件呢?比如说:bitPhoto.Save(Response.OutputStream, ImageFormat.Gif); 不知道该怎么操作,因为我不知道处理后的GIF动画还有没有bitmap 或者image 可以这样输出
      

  2.   

    bitPhoto.Save(Response.OutputStream, ImageFormat.Gif); 
    这样是可以的..
      

  3.   


    那你知道怎么对GIF动画添加水印么,能不能给点代码我参考一下,我是网上找的别人的代码,但是写得好复杂,只知道用,好多东西看不懂,再就是GIF处理后的保存,似乎只能保存到硬盘再读出为流,能不能直接到内存中处理,不保存到硬盘呢?
      

  4.   

    如果是动画的GIF 你需要修改保存的方法了. 如果只是透明处理直接使用Image就可以做到的
      

  5.   


    看一下对比图吧,不知道哪里不对,我是用你的方法直接转换保存的
    ToImageGif(img).Save(Server.MapPath("img/test.gif"));
      

  6.   


     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
      

  7.   

    ToImageGif 的方法里 把你取到的色彩表放到Image里.. 
      

  8.   


     Graphics.Clear(Color.Transparent); 是这样么,可是这样处理出来的图片是黑色一片啊?
      

  9.   


    我不是太懂你说的做法,刚刚接触这个。还有就是,我发现如果用你的方法处理背景不透明的GIF,得到的图像反而严重失真,丢失色彩,或者可以说第一帧以后的帧都看不清了,有什么办法可以判断要处理的GIF是否是背景透明的呢?从而选择不同的处理方法
      

  10.   

    看看這個吧,似乎就是給動態GIF加數字水印后輸出的效果,可以做計數器但我的處理效果不行
      

  11.   

    gif类非常强大,学习了,但似乎在gif类里没有看见质量控制的语句,你参考一下吧:
    Graphics picture = Graphics.FromImage(img);
    picture.SmoothingMode = SmoothingMode.HighQuality;
    picture.TextRenderingHint = System.Drawing.Text.TextRenderingHint.ClearTypeGridFit;
    picture.CompositingQuality = CompositingQuality.HighQuality;
      

  12.   

    学习了  这个是我自己做的 gif水印  logo在线生成 http://www.zlinkz.com/Tool_creatLogo.aspx
    写在我的网站上了
    友情链接交换