如何把远程主机上的图片直接显示到picturebox中?(十万火急)

csdnnet2004 2004-05-09 12:16:11
如:给定如下图片,有哪位高手知道如何通过vb编码,把这个图片直接显示到picturebox中?
http://www.csdn.net/images/homeimage/csdn.gif
...全文
208 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
griefforyou 2004-05-10
  • 打赏
  • 举报
回复
呵呵,他的简单!
flying_ylh 2004-05-09
  • 打赏
  • 举报
回复
online(龙卷风V2.0--再战江湖)
还是你的方法好
griefforyou 2004-05-09
  • 打赏
  • 举报
回复
Internet传输控件

工程->部件->Microsoft Internet Transfer Control x.x
howo 2004-05-09
  • 打赏
  • 举报
回复
to griefforyou(为你伤心):
Inet1.Execute Text1.Text, "GET" 中的Inet1是什么?

griefforyou 2004-05-09
  • 打赏
  • 举报
回复
'使用XMLHTTP对象下载,使用ADODB.Stream对象写文件的方法
'(不需在VB中添加引用)
Option Explicit

Private Function XMLGetURL(URL As String) As Byte()
On Error GoTo errHandler
Dim XMLObj As Object

Set XMLObj = CreateObject("Microsoft.XMLHTTP")
XMLObj.open "GET", URL, False
XMLObj.Send
If XMLObj.readyState <> 4 Then
MsgBox "下载失败!"
Exit Function
End If
XMLGetURL = XMLObj.responseBody
Set XMLObj = Nothing
Exit Function
errHandler:
MsgBox Err.Description, vbInformation, "错误"
End Function

Function SaveImage(URL As String, toFile As String)
Dim objStream As Object
Dim ImgData() As Byte
ImgData = XMLGetURL(URL)

Set objStream = CreateObject("ADODB.Stream")
objStream.Type = 1
objStream.open
objStream.Write ImgData
objStream.SaveToFile toFile, 2
objStream.Close
Set objStream = Nothing
End Function


Private Function GetFileName(URL As String) As String
GetFileName = Mid(URL, InStrRev(URL, "/") + 1)
End Function

Private Sub Command1_Click()
Dim URL As String
URL = "http://expert.csdn.net/images/csdn.gif"
SaveImage URL, "c:\" & GetFileName(URL)
Picture1.Picture = LoadPicture("c:\" & GetFileName(URL))
End Sub
griefforyou 2004-05-09
  • 打赏
  • 举报
回复
'使用XMLHTTP对象下载,使用ADODB.Stream对象写文件的方法
'首先要引用Microsoft XML,ADO 2.5以上

Option Explicit

Private Function XMLGetURL(URL As String) As Byte()
On Error GoTo errHandler
Dim XMLObj As New XMLHTTP
XMLObj.open "GET", URL, False
XMLObj.Send
If XMLObj.readyState <> 4 Then
MsgBox "下载失败!"
Exit Function
End If
XMLGetURL = XMLObj.responseBody
Set XMLObj = Nothing
Exit Function
errHandler:
MsgBox Err.Description, vbInformation, "错误"
End Function

Function SaveImage(URL As String, toFile As String)
Dim objStream As New Stream
Dim ImgData() As Byte
ImgData = XMLGetURL(URL)
objStream.Type = 1
objStream.open
objStream.Write ImgData
objStream.SaveToFile toFile, 2
objStream.Close
Set objStream = Nothing
End Function


Private Function GetFileName(URL As String) As String
GetFileName = Mid(URL, InStrRev(URL, "/") + 1)
End Function

Private Sub Command1_Click()
Dim URL As String
URL = "http://expert.csdn.net/images/csdn.gif"
SaveImage URL, "c:\" & GetFileName(URL)
Picture1.Picture = LoadPicture("c:\" & GetFileName(URL))
End Sub
online 2004-05-09
  • 打赏
  • 举报
回复
可以先下载,然后显示
'把指定给定一个网络文件(任何类型,可以是图像文件)的地址,然后用程序把其保存为本机器的文件


Public Declare Function URLDownloadToFile Lib "urlmon" Alias "URLDownloadToFileA" (ByVal pCaller As Long, ByVal szURL As String, ByVal szFileName As String, ByVal dwReserved As Long, ByVal lpfnCB As Long) As Long

'保存网上的图片到硬盘
'URL是图版的网址
'LocalFilename 是保存到本地的文件名及目录
'使用例子:DownloadFile "http://www.21cn.com/aa.jpg","c:\aa.jpg"

Public Function DownloadFile(URL As String, LocalFilename As String) As Boolean
Dim lngRetVal As Long
lngRetVal = URLDownloadToFile(0, URL, LocalFilename, 0, 0)
If lngRetVal = 0 Then DownloadFile = True
End Function


Picture2.Picture = LoadPicture("c:\aa.jpg")
griefforyou 2004-05-09
  • 打赏
  • 举报
回复
源码可以看这里!
http://websx.home.zccn.net/bbs/SavePost.asp?Action=snew&boardid=52
griefforyou 2004-05-09
  • 打赏
  • 举报
回复
Private Sub Command1_Click()
Inet1.Execute Text1.Text, "GET"
End Sub

Private Sub Form_Load()
Text1.Text = "http://www.csdn.net/images/homeimage/csdn.gif"
Text2.Text = "c:\temp.gif"
End Sub

Private Sub Inet1_StateChanged(ByVal State As Integer)
On Error GoTo Errhandler
Dim vtData() As Byte '数据变量。
Dim Count As Long
Select Case State
Case icHostResolvingHost
Label1.Caption = "正在查询所指定的主机的 IP 地址"
Case icHostResolved
Label1.Caption = "成功地找到所指定的主机的 IP 地址"
Case icConnecting
Label1.Caption = "正在与主机连接"
Case icConnected
Label1.Caption = "已与主机连接成功"
Case icRequesting
Label1.Caption = "正在向主机发送请求"
Case icRequestSent
Label1.Caption = "发送请求已成功"
Case icReceivingResponse
Label1.Caption = "在接收主机的响应"
Case icResponseReceived
Label1.Caption = "成功地接收到主机的响应"
Case icDisconnecting
Label1.Caption = "正在解除与主机的连接"
Case icDisconnected
Label1.Caption = "已成功地与主机解除了连接"
Case icError
Label1.Caption = "与主机通讯时出现了错误"
Case icResponseCompleted '12

TotalLength = Val(Inet1.GetHeader("Content-length"))
Step = (Me.ScaleWidth - Picture1.Left * 2) / TotalLength
Debug.Print Step
Label1.Caption = "请求已经完成,并且所有数据均已接收到"
Open Text2.Text For Binary Access Write As #1
vtData = Inet1.GetChunk(1024, icByteArray)
Count = 1000

Picture1.Width = Picture1.Width + Count * Step
Picture1.Visible = True
Label1.Caption = "" & Round(Count * 1000 / TotalLength, 0) & "%"
'Me.Refresh
Do While UBound(vtData) > 0
Put #1, , vtData
vtData = Inet1.GetChunk(1024, icByteArray)
Picture1.Width = Picture1.Width + 1024 * Step
Count = Count + 1024
Label2.Caption = "" & Round(Count * 100 / TotalLength, 0) & "%"
Loop
Put #1, , vtData
Close #1
Label2.Caption = "100%"
Picture2.Picture = LoadPicture(Text2.Text)
End Select
Exit Sub
Errhandler:
MsgBox Err.Description
End Sub

1,502

社区成员

发帖
与我相关
我的任务
社区描述
VB 网络编程
社区管理员
  • 网络编程
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧