it-swarm.com.de

Wie kann ich die Image-URL in system.drawing.image konvertieren?

Ich verwende VB.Net Ich habe eine URL eines Bildes, sagen wir http://localhost/image.gif

Ich muss ein System.Drawing.Image-Objekt aus dieser Datei erstellen.

Hinweis Speichern Sie diese in einer Datei und öffnen Sie sie dann nicht. Ich benutze auch ItextSharp.

hier ist mein code: 

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)
29
Mina Gabriel

Sie können die WebClient-Klasse verwenden, um ein Image herunterzuladen, und dann MemoryStream, um es zu lesen:

c #

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

VB

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)
55
Varius

Die anderen Antworten sind auch richtig, aber es tut weh, wenn der Webclient und der MemoryStream nicht entsorgt werden. Ich empfehle Ihnen, Ihren Code in eine using zu setzen.

Beispielcode:

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

Die erforderlichen Importe oben in Ihrer Datei sind System.IO, System.Net & System.Drawing

In VB.net lautete die Syntax using wc as WebClient = new WebClient() { etc

12
T_D

Sie können dies versuchen, um das Bild zu erhalten

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()

iTextSharp kann Uris akzeptieren:

Image.GetInstance(uri)
1
VahidN
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