23

Вопрос по c#, httpresponse – Невозможно найти FromStream в классе изображений

У меня есть следующий код:

Image tmpimg = null;
HttpWebRequest httpWebRequest = (HttpWebRequest)HttpWebRequest.Create(url);
HttpWebResponse httpWebReponse = (HttpWebResponse)httpWebRequest.GetResponse();
Stream stream = httpWebReponse.GetResponseStream();
return Image.FromStream(stream);

На последней строке, когда я набираюImage., FromStream нет в списке. Что я могу сделать?

FromStream проблема ясна Неясно, какие недостатки были в других ответах (или что это было).

от Oded

Прочитайте вопрос. Проблема в том, что FromStream не может быть найден

от user896692

Когда я погуглил это или прочитал вопросы & quot; Загрузить изображение с URL & quot; всегдаFromStream используется. Когда я пытаюсь это сделать, он не найден

от user896692

I´ve got a problem with the found suggestions, Что это за проблема?

от Oded
4 ответа
8

Вам наверное нужно

using System.Drawing;.

Хорошо, я неправильно использовал. Я приму ваш ответ через 6 минут. Спасибо!

от user896692

Также вам нужно закрыть / удалить http ответ. Если этого не сделать, соединение http будет открытым, а попытка сделать несколько запросов к одному и тому же серверу приведет к сбою.

от 
28

Более подробный пример с использованием и необходимыми пространствами

имен.

using System.Net;
using System.IO;
using System.Drawing;

public static Image GetImageFromUrl(string url)
    {
        HttpWebRequest httpWebRequest = (HttpWebRequest)HttpWebRequest.Create(url);

            using (HttpWebResponse httpWebReponse = (HttpWebResponse)httpWebRequest.GetResponse())
            {
                using (Stream stream = httpWebReponse.GetResponseStream())
                {
                    return Image.FromStream(stream);
                }
            }
    }

Надеюсь, это сэкономит вам время, так как вы можете просто скопировать и вставить свое решение.

~ Ура !!

Вы чертовски правы, это экономит время! Спасибо

от 

Работает как шарм!Image image1 = GetImageFromUrl("http://upload.wikimedia.org/wikipedia/commons/c/cd/Panda_Cub_from_Wolong,_Sichuan,_China.JPG"); //do something with your image

от 

использованиеvar httpWebRequest = HttpWebRequest.CreateHttp(url); чтобы избежать кастинга.

от 
11

Попробуй это:

    using System.Drawing;
    using System.IO;
    using System.Net;

    public static Image GetImageFromUrl(string url)
    {
        using (var webClient = new WebClient())
        {
            return ByteArrayToImage(webClient.DownloadData(url));
        }
    }

    public static Image ByteArrayToImage(byte[] fileBytes)
    {
        using (var stream = new MemoryStream(fileBytes))
        {
            return Image.FromStream(stream);
        }
    }

Отличный момент на byteArray !! Я действительно буду нуждаться в этом на следующей неделе !! Идеальное время.

от 
2

Кстати

вам также нужно добавить ссылку на System.Drawing.dll, только добавления с использованием System.Drawing недостаточно.

Похожие вопросы