如何显示图像(s)从流(响应)在图片框特定的URL



以下是我的代码:

    HttpWebRequest req = (HttpWebRequest)WebRequest.Create("http://www.flowercity.com/");
    req.Method = "GET";
    req.Accept = "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8";
    req.ContentType = "text/html; charset=utf-8";
    req.Timeout = 25000;
    HttpWebResponse res = (HttpWebResponse)req.GetResponse();
    Stream Stream = res.GetResponseStream();
    StreamReader reader = new StreamReader(Stream);
    string reader_str = reader.ReadToEnd();

我如何在流中抓取加载的图像并在PictureBox中逐个显示 ?

编辑1:
请看看我的网址,它不是一个图像,它是一个网站,我们有一个网站在流。
所以下面的代码不起作用:

    Image img = Image.FromStream(Stream);
    PictureBox1.Image = img;
编辑2:
我不能使用HtmlAgilityPack获取图像url
没有特定的url为每个图像,需要显示以前加载的图像流

正如vcsjones在评论中所说,你的流是网站索引页的流。其中有图像标签。就像你的浏览器为你所做的一样,当你导航到有问题的网站时,你需要单独下载图像。

要做到这一点,最可靠的方法可能是使用正则表达式来搜索网页(你在你的示例代码中加载的那个)的这些链接。显然,您可以尝试将页面作为XML文档加载,但XML解析器对有效性非常严格。不幸的是,大多数网页作者都不是这样,所以更"松散"地搜索网页链接可能效果最好。

你的代码应该工作,如果你提供它一个直接的图像链接。你现在面临的挑战是从你正在加载的页面获得这些直接链接。

编辑

你的网页看起来像这样:

<html>
<title>welcome to the flower page</title>
<img src="flower.jpg"/>
</html>

(为简单而缩短)

你需要通读文本,找到图像存储在web服务器上的位置,然后打开一个单独的http连接下载每个图像。

相关内容

  • 没有找到相关文章

最新更新