日期:2014-05-17  浏览次数:20531 次

如何保存网上的gif动画图片到本地?
本帖最后由 jasonpeng2 于 2012-11-28 23:22:52 编辑 刚学C#,写了个web程序,主要的用途是要用于采集网上的资源到本地。。
复制网页的html到文本框后,通过正则分析出了网上img元素的src地址,然后保存远程图片到本地。。
这里有个问题就是保存jpg、png等静态图片时正常,而保存下来gif的动画,只有一帧,变成了静态图片,请各位童鞋帮帮忙,有没有保存远程gif动画到本地的方法?
下面贴上我现在使用的保存图片的部分源码:
.cs文件代码:

            // 保存的本地的文件名开头和目录,以年月日时分秒毫秒的格式来命名,示例:20121122131745123
            string strSaveName = DateTime.Now.ToString("yyyyMMddHHmmssfff");
            string strSaveDir = "/pic/collect/" + strSaveName;
            string strHostAdr = Request.UserHostAddress;
            string strI;
            Person ps = new Person();

            if (!strHostAdr.StartsWith("http://"))
            {
                strHostAdr = "http://" + strHostAdr;
            }

            // 保存远程的宝贝图片到本地,这里各个图片是用“;”隔开的
            string strItemImgs = txtItemImgs.Text;

            string[] strsItemImg = strItemImgs.Split(new char[] { ';' }, StringSplitOptions.RemoveEmptyEntries);
            Dictionary<string, string> dictItemImg = new Dictionary<string, string>();

            if (strsItemImg.Length > 0)
            {
                for (int i = 0; i < strsItemImg.Length; i++)
                {
                    // 判断数组中的远程图片地址是否已经存在于dictionary泛型数组中,不存在才添加并下载到本地,避免重复下载相同的图片
                    if (!dictItemImg.ContainsKey(strsItemImg[i]))
                    {
                        if (i < 10)
                        {
                            strI = "0" + i;
                        }
     &nbs