如何将图片网址转换为system.drawing.image

Min*_*iel 30 .net c# vb.net asp.net itextsharp

我正在使用VB.Net我有一个图像的网址,让我们说http://localhost/image.gif

我需要从该文件创建一个System.Drawing.Image对象.

请注意将此保存到文件然后打开它不是我正在使用的选项之一ItextSharp

这是我的代码:

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)
Run Code Online (Sandbox Code Playgroud)

Var*_*ius 59

您可以使用WebClient类下载图像,然后使用MemoryStream来读取它:

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);
Run Code Online (Sandbox Code Playgroud)

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)
Run Code Online (Sandbox Code Playgroud)


T_D*_*T_D 13

其他答案也是正确的,但是看到Webclient和MemoryStream没有被处理会很痛苦,我建议把你的代码放在一个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
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

在你的文件的顶部所需的进口System.IO,System.NetSystem.Drawing

在VB.net中,语法是using wc as WebClient = new WebClient() {等等