-1

听说framework 2.0 支持图片url,但是找不到。有没有办法在 C# 中直接从 Url 显示图像?(桌面应用)

通常我遵循的方式是在返回图像后下载图像。这是我的代码..但我不想遵循那种方式。所以我正在寻找一种不使用 Httpwebrequest 或类似的方法..

  public Image DownloadImage(string _URL)
        {
            Image _tmpImage = null;

            try
            {
                // Open a connection
                System.Net.HttpWebRequest _HttpWebRequest = (System.Net.HttpWebRequest)System.Net.HttpWebRequest.Create(_URL);

                _HttpWebRequest.AllowWriteStreamBuffering = true;

                // You can also specify additional header values like the user agent or the referer: (Optional)
                _HttpWebRequest.UserAgent = "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1)";
                _HttpWebRequest.Referer = "http://www.google.com/";

                // set timeout for 20 seconds (Optional)
                _HttpWebRequest.Timeout = 20000;

                // Request response:
                System.Net.WebResponse _WebResponse = _HttpWebRequest.GetResponse();

                // Open data stream:
                System.IO.Stream _WebStream = _WebResponse.GetResponseStream();

                // convert webstream to image
                _tmpImage = Image.FromStream(_WebStream);

                // Cleanup
                _WebResponse.Close();
                _WebResponse.Close();
            }
            catch (Exception _Exception)
            {
                // Error
                Console.WriteLine("Exception caught in process: {0}", _Exception.ToString());
                return null;
            }

            return _tmpImage;
        } 

我正在寻找另一种方法。我不知道可以是什么..?我想学习如何处理它..

4

4 回答 4

4

你可以使用这个代码

string remoteUri = "http://www.yourSite.com/library/homepage/images/";
string fileName = "YourImagegif", 
myStringWebResource = null;
// Create a new WebClient instance.
WebClient myWebClient = new WebClient();
// Concatenate the domain with the Web resource filename.
myStringWebResource = remoteUri + fileName;
Console.WriteLine("Downloading File \"{0}\" from \"{1}\" .......\n\n", fileName, myStringWebResource);
// Download the Web resource and save it into the current filesystem folder.
myWebClient.DownloadFile(myStringWebResource,fileName); 
于 2012-07-28T11:35:51.067 回答
2

您想在桌面应用程序上显示图像 url。所以你必须先下载图像。通过调用 DownloadFile 方法使用 WebClient

于 2012-07-28T11:31:16.897 回答
1

尝试使用图片框控件。使用它从网络加载图像

string imageLink="http://where.is/image.tld";
pictureBox1.ImageLocation= imageLink;

创建一个带有文本框、数据网格视图、图片框和按钮的表单;将数据网格选择模式设置为全行选择。使用此代码:

  private void button1_Click(object sender, EventArgs e)
        {
            string imageLink= textBox1.Text;
           try
                    {
                        int i;
                        i = dataGridView1.Rows.Add(new DataGridViewRow());
                        dataGridView1.Rows[i].Cells["Column1"].Value = imageLink;


                    }
                    catch (Exception ex)
                    {

                        MessageBox.Show("error");
                    }
        }

        private void dataGridView1_CellContentClick(object sender, DataGridViewCellEventArgs e)
        {

            string img = dataGridView1.SelectedRows[0].Cells["Column1"].Value.ToString();


            pictureBox1.ImageLocation = img;
        }
于 2012-07-28T11:30:48.810 回答
1

看看这个主题 http://social.msdn.microsoft.com/Forums/en/winforms/thread/312a7fb2-9411-450a-8032-ee169397fd96 可能就是你要找的

于 2012-07-28T11:36:29.007 回答