图片下载器

一直做 对winform 确实不熟, 但是由于某些人的特殊要求 用winform做一个 图片下载器 so

先获取列表网页的源码

 private string GetHtml(string url)
        {
            var req = WebRequest.Create(url);
            var rep = req.GetResponse();
            var webstream = rep.GetResponseStream();
            StreamReader sr = new StreamReader(webstream);
            return sr.ReadToEnd();
        }

如果是列表页面,就分析网页中所有的详细页面的地址, 再一一访问详细页面

urls = WebParse.Parse_List(html);
                        for (var i = 0; i < imgs.Count; i++)
                        {
                            GetImgs(GetHtml(urls[i]));
                        }

获取详细页面的源码后,筛选掉gif后缀的图片,还有将不符合规定的图片都筛选掉,将剩下的图片地址存在数组中

List<string> imgs = WebParse.Parse_Detal(html);

最后通过图片大小来筛选出最终需要的图片

 for (var i = 0; i < imgs.Count; i++)
            {
                Image image = Image.FromStream(WebRequest.Create(@imgs[i]).GetResponse().GetResponseStream());
                if (image.Width <= minWidth || image.Height <= minHeght) return;
                image.Save(file + count.ToString() + ".jpg");
                image.Dispose();
                count++;
            }

当然本人不知道有没有更简便的方法 如果有请指出

后来的一些修改

选择文件夹的问题 之前一直没有找到控件 (⊙﹏⊙b汗) 所以用的是TextBox 手动输入的文件夹

1 private void SaveImg_Click(object sender, EventArgs e)
2 {
3 var openFile = new FolderBrowserDialog();
4 if (openFile.ShowDialog() == DialogResult.OK)
5 {
6 SaveImg.Text = openFile.SelectedPath + "\\";
7 }
8
9 //下面是选择文件的方式
10 //string resultFile = "";
11 //OpenFileDialog openFileDialog1 = new OpenFileDialog();
12 //openFileDialog1.InitialDirectory = "D:\\Patch";
13 //openFileDialog1.Filter = "All files (*.*)|*.*|txt files (*.txt)|*.txt";
14 //openFileDialog1.FilterIndex = 2;
15 //openFileDialog1.RestoreDirectory = true;
16 //if (openFileDialog1.ShowDialog() == DialogResult.OK)
17  }
记录一下 万一下次还要做方便查阅
posted @ 2011-04-15 19:49  CallMeTommy  阅读(363)  评论(0编辑  收藏  举报