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)
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)
他の答えも正しいですが、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() {
などでした
これを試して画像を取得できます
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)
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)