backdafuckup Back to da old skool | Bonjour à tous,
Je viens de terminer un site internet de commande d'impression de posters pour ma boîte, et partenariat avec un grand site mondial (je tairais le nom pour l'instant).
Depuis le site partenaire, les gens cliquent sur une image et ont un lien "obtenir un poster de cette image".
De notre coté, le site que j'ai fait reçoit une URL en post, et je télécharge l'image via une fonction .net avec webrequest et webresponse.
Tous les formats d'image fonctionnent, sauf un : le SVG. Normal, ce n'est pas vraiment un format d'image, c'est du XML qui rend du vectoriel.
Le problème et que je n'arrive pas à télécharger ce svg distant.
Je vais coller le code de ce que j'ai tenté, mais le fichier que je télécharge fait 0 Ko.
Code :
- Shared Function EnregistreImage(ByVal URLImage As String, ByVal CheminDestImage As String) As String
- Dim myRequest As System.Net.HttpWebRequest
- Dim myResponse As System.Net.HttpWebResponse
- Dim s As System.IO.Stream
- Dim graphicTemp As System.Drawing.Graphics
- Dim ImageSource As System.Drawing.Image
- myRequest = System.Net.WebRequest.Create(URLImage)
- myResponse = myRequest.GetResponse()
- If myResponse.ContentType = "image/gif" Then
- Return myResponse.ContentType
- End If
- s = myResponse.GetResponseStream()
- Select Case Right(URLImage, 4)
- Case ".svg", ".SVG"
- 'CAS DU SVG -> NE MARCHE PAS
- Using outputStream As FileStream = New FileStream(CheminDestImage, FileMode.Create, FileAccess.Write)
- Dim cnt As Integer = 0
- Const LEN As Integer = 4096
- Dim buffer(LEN) As Byte
- While ((cnt = s.Read(buffer, 0, LEN)) <> 0)
- outputStream.Write(buffer, 0, cnt)
- End While
- outputStream.Close()
- End Using
- Case Else
- ImageSource = System.Drawing.Image.FromStream(s)
- graphicTemp = System.Drawing.Graphics.FromImage(ImageSource)
- graphicTemp.CompositingMode = System.Drawing.Drawing2D.CompositingMode.SourceOver
- graphicTemp.CompositingQuality = System.Drawing.Drawing2D.CompositingQuality.HighQuality
- graphicTemp.SmoothingMode = System.Drawing.Drawing2D.SmoothingMode.HighQuality
- graphicTemp.InterpolationMode = System.Drawing.Drawing2D.InterpolationMode.HighQualityBicubic
- graphicTemp.PixelOffsetMode = System.Drawing.Drawing2D.PixelOffsetMode.HighQuality
- graphicTemp.DrawImage(ImageSource, 0, 0, ImageSource.Size.Width, ImageSource.Size.Height)
- graphicTemp.Dispose()
- ImageSource.Save(CheminDestImage, System.Drawing.Imaging.ImageFormat.Jpeg)
- ImageSource.Dispose()
- End Select
- s.Close()
- myResponse.Close()
- Return myRequest.ContentType
- End Function
|
Voilà, si quelqu'un pouvait me dire ce qui coince dans mon code, et pourquoi le fichier ne s'écrit pas, ca débloquerait une situation...
Merci d'avance. |