2012-08-03 20 views
26

मैं VB.Net एक छवि का एक यूआरएल है उपयोग कर रहा हूँ मैं छवि यूआरएल System.Drawing.Image कर सकते हैं, मान लीजिए कि http://localhost/image.gifमैं कैसे कन्वर्ट

मुझे लगता है कि फ़ाइल से एक System.Drawing.Image वस्तु बनाने की जरूरत हैं।

Dim rect As iTextSharp.text.Rectangle 
     rect = iTextSharp.text.PageSize.LETTER 
     Dim x As PDFDocument = New PDFDocument("chart", rect, 1, 1, 1, 1) 

     x.UserName = objCurrentUser.FullName 
     x.WritePageHeader(1) 
     For i = 0 To chartObj.Count - 1 
      Dim chartLink as string = "http://localhost/image.gif" 
      x.writechart(** it only accept system.darwing.image **) 

     Next 

     x.WritePageFooter() 
     x.Finish(False) 

उत्तर

48

आप WebClient वर्ग इस्तेमाल कर सकते हैं:

सूचना एक फ़ाइल को यह बचाने के लिए और फिर उसे खोलें मेरी कोड है मेरे विकल्प में से एक मैं भी ItextSharp

यहाँ उपयोग कर रहा हूँ नहीं है छवि डाउनलोड करने और फिर MemoryStream इसे पढ़ने के लिए:

सी #

WebClient wc = new WebClient(); 
byte[] bytes = wc.DownloadData("http://localhost/image.gif"); 
MemoryStream ms = new MemoryStream(bytes); 
System.Drawing.Image img = System.Drawing.Image.FromStream(ms); 

वीबी

Dim wc As New WebClient() 
Dim bytes As Byte() = wc.DownloadData("http://localhost/image.gif") 
Dim ms As New MemoryStream(bytes) 
Dim img As System.Drawing.Image = System.Drawing.Image.FromStream(ms) 
+0

था, तो आप के बारे में चिंतित थे पर आवश्यक आयात छवि वहां नहीं है, क्या आप मेमोरीस्ट्रीम अनुभाग को एक प्रयोग कथन में डाल देंगे? – Jason

+0

यह सही काम करता है। मैंने सफलतापूर्वक इसका इस्तेमाल किया। –

+0

यदि आपने सी # रूट के लिए एएसपी.NET एमवीसी और एएसपी.Net कोर समाधान दोनों प्रदान किए हैं, तो मैं इस SO हार्ड को ऊपर उठाऊंगा - (एएसपी.Net कोर 'वेब क्लाइंट' का उपयोग नहीं कर सकता) – NoReceipt4Panda

1

आप छवि प्राप्त करने के लिए इस कोशिश कर सकते हैं

Dim req As System.Net.WebRequest = System.Net.WebRequest.Create("[URL here]") 
Dim response As System.Net.WebResponse = req.GetResponse() 
Dim stream As Stream = response.GetResponseStream() 

Dim img As System.Drawing.Image = System.Drawing.Image.FromStream(stream) 
stream.Close() 
+0

क्या आप मुझे बता सकते हैं कि मैं वही कैसे कर सकता हूं एक पेज के साथ लगता है कि 'Response.ContentType =" छवि/png "' मैं सच में –

+0

सराहना मैं इसे उसी तरह कर सकता है, एक किसी भी छवि, 'response.GetResponseStream के रूप में()' ठीक काम करना चाहिए। –

0
Dim c As New System.Net.WebClient 
Dim FileName As String = "c:\StackOverflow.png" 
c.DownloadFile(New System.Uri("http://cdn.sstatic.net/stackoverflow/img/sprites.png?v=5"), FileName) 
Dim img As System.Drawing.Image 
img = System.Drawing.Image.FromFile(FileName) 
+0

दरअसल, मुझे उसका बेहतर पसंद है^मैं पहले होने के लिए दौड़ रहा था। – blang32

1

iTextSharp उरी के स्वीकार करने में सक्षम है:

Image.GetInstance(uri) 
6

अन्य उत्तरों भी सही हैं, लेकिन यह वेबक्लिएंट और मेमोरीस्ट्रीम को डिस्प्ले नहीं करने के लिए दर्द होता है, मैं आपके कोड को using में डालने की सलाह देता हूं।

उदाहरण कोड:

using (var wc = new WebClient()) 
{ 
    using (var imgStream = new MemoryStream(wc.DownloadData(imgUrl))) 
    { 
     using (var objImage = Image.FromStream(imgStream)) 
     { 
      //do stuff with the image 
     } 
    } 
} 

अपनी फ़ाइल के शीर्ष System.IO हैं, System.Net & System.Drawing

VB.net में वाक्य रचना using wc as WebClient = new WebClient() { आदि

संबंधित मुद्दे