J'utilise VB.Net
J'ai l'URL d'une image, disons http://localhost/image.gif
J'ai besoin de créer un objet System.Drawing.Image à partir de ce fichier.
Avis enregistrer ceci dans un fichier puis l'ouvrir n'est pas l'une de mes options J'utilise aussi ItextSharp
voici mon 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)
Vous pouvez utiliser la classe WebClient pour télécharger une image, puis MemoryStream pour la lire:
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)
Les autres réponses sont également correctes, mais cela fait mal de voir le client Web et MemoryStream ne pas être disposés, je vous recommande de placer votre code dans une using
.
Exemple de code:
using (var wc = new WebClient())
{
using (var imgStream = new MemoryStream(wc.DownloadData(imgUrl)))
{
using (var objImage = Image.FromStream(imgStream))
{
//do stuff with the image
}
}
}
Les importations requises en haut de votre fichier sont System.IO
, System.Net
& System.Drawing
Dans VB.net, la syntaxe était using wc as WebClient = new WebClient() {
etc.
Vous pouvez essayer ceci pour obtenir l'image
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 est capable d'accepter les actions d'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)