web-dev-qa-db-ja.com

画像のURLをsystem.drawing.imageに変換するにはどうすればよいですか

VB.Netを使用しています。画像のURLがあります。たとえば、http://localhost/image.gif

そのファイルからSystem.Drawing.Imageオブジェクトを作成する必要があります。

注意これをファイルに保存してから開くと、ItextSharpを使用しているオプションの1つでもありません

ここに私のコードがあります:

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

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

[〜#〜] 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)
59
Varius

他の答えも正しいですが、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
        }
    }
}
_

ファイルの先頭に必要なインポートは、_System.IO_、_System.Net_&_System.Drawing_です。

VB.netでは、構文はusing wc as WebClient = new WebClient() {などでした

13
T_D

これを試して画像を取得できます

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はUriを受け入れることができます:

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