2012-04-09 42 views
23

Tôi có đoạn mã sau:Không thể xác định vị trí FromStream trong lớp Image

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

Trên dòng cuối cùng khi tôi gõ vào Image., FromStream không có trong danh sách. Tôi có thể làm gì?

+0

'Tôi gặp sự cố với các đề xuất được tìm thấy'. Vấn đề đó là gì? – Oded

+2

Đọc câu hỏi. Vấn đề là không thể tìm thấy FromStream – user896692

+0

Vấn đề 'FromStream' là rõ ràng. Điều không rõ ràng là những gì thiếu sót có trong các câu trả lời khác (hoặc đó là nó). – Oded

Trả lời

8

Bạn có thể cần using System.Drawing;.

+0

Ok, tôi đã sử dụng sai. Tôi sẽ chấp nhận câu trả lời của bạn sau 6 phút. Cảm ơn! – user896692

+0

Ngoài ra, bạn cần phải đóng/hủy bỏ câu trả lời http. Không làm như vậy để mở kết nối http và cố gắng thực hiện nhiều yêu cầu đến cùng một máy chủ sẽ không kết thúc. – Will

28

Ví dụ chi tiết hơn về cách sử dụng và không gian tên cần thiết.

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); 
       } 
      } 
    } 

Hy vọng điều này giúp bạn tiết kiệm thời gian, vì bạn chỉ cần sao chép nhanh và dán vào giải pháp của mình.

~ Chúc mừng !!

+0

Bạn đang damn phải nó tiết kiệm một thời gian! Cảm ơn – JDandChips

+0

Hoạt động như một sự quyến rũ! 'Hình ảnh image1 = GetImageFromUrl (" http://upload.wikimedia.org/wikipedia/commons/c/cd/Panda_Cub_from_Wolong,_Sichuan,_China.JPG "); // làm điều gì đó với hình ảnh của bạn' – Combine

+0

Sử dụng 'var httpWebRequest = HttpWebRequest.CreateHttp (url);' để tránh truyền. – m1kael

11

thử này một:

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); 
     } 
    } 
+1

Điểm tuyệt vời trên byteArray !! Tôi thực sự sẽ cần tuần này !! Thời gian hoàn hảo. – Rogala

2

btw, bạn cũng cần phải thêm tham chiếu đến System.Drawing.dll, chỉ có thêm sử dụng System.Drawing là không đủ.

Các vấn đề liên quan