2012-10-05 3 views
1

Picturebox 컨트롤에서 기상 레이더 이미지 오버레이를 서로 위에 놓으려고합니다. 그래픽의 크기는 모두 600, 550입니다. 내 코드는 오류가 없지만 실행하면 공백으로 표시됩니다. 내가 도대체 ​​뭘 잘못하고있는 겁니까?VB에서 그림 상자에 2 개의 오버레이를 표시하려고 시도했습니다.

여기 내 코드입니다 : 당신은 비트 맵에 대한 URI를 사용할 수 없습니다

Dim Image1 As New Bitmap("http://radar.weather.gov/ridge/Overlays/Topo/Short/FWS_Topo_Short.jpg") 
    Dim Image2 As New Bitmap("http://radar.weather.gov/ridge/RadarImg/N0R/FWS_N0R_0.gif") 
    Dim Image3 As New Bitmap(600, 550) 
    Dim g As Graphics = Graphics.FromImage(Image3) 
    g.DrawImage(Image1, New Point(0, 0)) 
    g.DrawImage(Image2, New Point(0, 0)) 
    PictureBox1.Image = Image3 
    g.Dispose() 
    g = Nothing 

답변

1

, 로컬 경로를 지정해야합니다. 그러나 Bitmap을 사용하여 스트림을 사용할 수 있으므로 먼저 사이트의 이미지에 대한 스트림을 열고이를 통해 스트림을로드하십시오. 예를 들어

:

 Dim Image1 As Bitmap = GetStreamBitmap("http://radar.weather.gov/ridge/Overlays/Topo/Short/FWS_Topo_Short.jpg") 
     Dim Image2 As Bitmap = GetStreamBitmap("http://radar.weather.gov/ridge/RadarImg/N0R/FWS_N0R_0.gif") 

     'TODO implement error checking, "if image1 is nothing" etc.. 

     Dim Image3 As New Bitmap(600, 550) 
     Dim g As Graphics = Graphics.FromImage(Image3) 
     g.DrawImage(Image1, New Point(0, 0)) 
     g.DrawImage(Image2, New Point(0, 0)) 

     PictureBox1.Image = Image3 

     g.Dispose() 
     g = Nothing 

     Image2.Dispose() 
     Image1.Dispose() 

'... 

    Private Function GetStreamBitmap(url As String) As Bitmap 

     Dim bmp As Bitmap = Nothing 

     Try 
      Dim request As System.Net.WebRequest = _ 
       System.Net.WebRequest.Create(url) 

      Dim response As System.Net.WebResponse = request.GetResponse() 
      Dim responseStream As System.IO.Stream = response.GetResponseStream() 
      bmp = New Bitmap(responseStream) 

     Catch ex As System.Net.WebException 
      ' handle error here 
     End Try 

     Return bmp 

    End Function 
+0

직접 관련 또는 필요하지만, 두 영상의 향상된 혼합에 직접 그래픽스를 생성 한 후,이 추가되지는 개체 : g.CompositingMode = Drawing2D.CompositingMode.SourceOver g. CompositingQuality = Drawing2D.CompositingQuality.HighQuality – K3N

+0

답변 해 주셔서 감사합니다. 그것은 정확히 내가 필요한 것입니다 :) –

관련 문제