webForumDet fria alternativet

Hur tar jag emot en bild...

.NET

3 svar · 271 visningar · startad av nickster

Medlem sedan sep. 20032 inlägg
Frågan#1

Jag har skickat en webrequest och fått tillbaka en XML-fil enligt koden nedanför.

Private Sub btnGetCap_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnGetCap.Click

    Dim sURL As String
    sURL = "http://130.11.52.184/scripts/ogc/ms.pl?WMTVER=1.0.0&request=capabilities"

    Dim wrGETURL As WebRequest
    wrGETURL = WebRequest.Create(sURL)

    Dim myProxy As New WebProxy("myproxy", 80)
    myProxy.BypassProxyOnLocal = True

   
    wrGETURL.Proxy = WebProxy.GetDefaultProxy()

    Dim objStream As Stream
    objStream = wrGETURL.GetResponse.GetResponseStream()

    Dim objReader As New StreamReader(objStream)
    Dim sLine As String = ""
    
    sLine = objReader.ReadToEnd
    If Not sLine Is Nothing Then
        txtGetResponse.Text = sLine
        
    End If

End Sub

Nu tänkte jag ändra några parametrar i sURL till...

sURL = "http://www.lifemapper.org/Services/WMS?Version=1.1.0&Request=GetMap&width=200&height=150&Bbox=-140,0,-60,60&Layers=Political Boundaries,Species Distribution Models,Species Data Points&Styles=&ScientificName=Erethizon%20dorsatum&SRS=EPSG:4326&format=image/gif&transparent=true"

Då kommer svaret att vara en kartbild, en GIF bild.
Hur tar jag emot den?
Nu ser jag bara filnamnet inte själva bilden...

Medlem sedan apr. 20012 266 inlägg
#2

Välkommen till webForum!

Troligen kommer bilden som en base64 sträng. För att konvertera en sådan till en byte[] (byte array) måste du använda Convert.FromBase64String(string); Sedan kan du antingen spara ner din byte[] eller visa den direkt på skärmen. Inte hundra på att detta skulle fungera men något i den här stilen

Medlem sedan aug. 20003 575 inlägg
#3

Välj ut en liten bild och skicka hit det du får som svar eller lägg till en bifogad text fil,.

Medlem sedan sep. 20032 inlägg
#4

Tackar!

Tackar för tipsen...
Jag gjorde så här, kanske inte så vackert men det funkar:

Private Sub btnGetMap_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnGetMap.Click
Dim sURL As String

    sURL = "http://www.lifemapper.org/Services/WMS?Version=1.1.0&Request=GetMap&width=200&height=150&Bbox=-140,0,-60,60&Layers=Political%20Boundaries,Species Distribution Models,Species Data Points&Styles=&ScientificName=Erethizon%20dorsatum&SRS=EPSG:4326&format=image/gif&transparent=false"
    Dim wrGETURL As WebRequest
    wrGETURL = FileWebRequest.Create(sURL)


    Dim myProxy As New WebProxy("myproxy", 80)
    myProxy.BypassProxyOnLocal = True

    
    wrGETURL.Proxy = WebProxy.GetDefaultProxy()

 
    Dim bmp As Bitmap
    bmp = New Bitmap(wrGETURL.GetResponse.GetResponseStream())
 

    Dim Bild As Bitmap = bmp
    Dim spara As String
    spara = "C:\\Documents and Settings\\nwn\\Mina dokument\\Mina bilder\\Kartan.gif"
    Bild.Save(spara)
    Dim image As Image = image.FromFile(spara)
    pbxKarta.Image = image    'läser upp i picture box


End Sub
251 ms totalt · 4 externa anrop · v20260731065814-full.6fe65c25
120 ms — deklarationer (db)
0 ms — hämta statistik (cache)
126 ms — hämta tråd, inlägg och bilagor (db)
123 ms — ändringar (db)