大橙子网站建设,新征程启航
为企业提供网站建设、域名注册、服务器等服务
我理解你
创新互联建站-云计算及IDC服务提供商,涵盖公有云、IDC机房租用、德阳服务器托管、等保安全、私有云建设等企业级互联网基础服务,电话联系:13518219792
我写过图片网络传输的和你要求的一样
为了不把图片写到硬盘 又从硬盘读取
而直接保存图片内存流 进行网络传输
从网络读取的图片byte数组转成图片代码如下
Dim mStream As New IO.MemoryStream
mStream.Write(b, 0, b.length) '这里b就是你的一维数组了
Dim Img As New Bitmap(mStream)
mStream.Close()
mStream.Dispose()
下面是把图片保存到一维数组的方法
Dim Stream As New IO.MemoryStream
im.Save(Stream, System.Drawing.Imaging.ImageFormat.Jpeg)
im = Nothing
Stream.Flush()
Dim b As Byte() = Stream.ToArray
Stream.Dispose()
winsock 发送图片,就是发送文件嘛。
不过UDP协议每次最多只能发送8K,所以你要先读取文件,建立以个byte()数组 然后第一次发送是从数组的0-8100这个范围,下次再发送的时候将再从8101开始发送,长度仍未8100就可以了。用一个while 循环来判断文件有没有发送完成就行了。对于接收端,在接收的时候也是要用一个循环来写文件,前提是你必须先把要发送的文件的长度告诉接收端。说的够详细了吧!
我正在用呀,没有任何问题!你的设置可能有问题!
Private Sub Command4_Click()
If Combo1.Text = "" Then
MsgBox "请您输入转换格式!!", 48, "提示信息"
Exit Sub
ElseIf Text2.Text = "" Or Text3.Text = "" Then
MsgBox "请选择转换前和转换后的文件路径!!", 48, "提示信息"
Exit Sub
Else
Me.MousePointer = 11
Command4.Enabled = False
Dim i, j, w, h, w1, h1, k As Integer
w = Picture1.Width
h = Picture1.Height
w1 = w / 15
h1 = h / 15
Picture2.Width = w
Picture2.Height = h
Picture1.Scale (0, 0)-(w1, h1)
Picture2.Scale (0, 0)-(w1, h1)
For i = 1 To w1
For j = 1 To h1
Picture2.PSet (i, j), Picture1.Point(i, j)
Next j
Next i
Picture2.Picture = Picture2.Image
SavePicture Picture2.Image, Text3.Text "." Mid(Combo1.Text, 3, Len(Combo1.Text) - 1)
MsgBox "格式转换成功完成!!", 64, "提示信息"
Command4.Enabled = True
Me.MousePointer = 0
End If
End Sub
Private Sub Command2_Click()
On Error GoTo x
DHK1.Filter = "所有文件(*.*)|*.*"
DHK1.ShowOpen
Text2.Text = DHK1.FileName
Image1.Picture = LoadPicture(Text2.Text)
Picture1.Picture = Image1.Picture
Exit Sub
x:
MsgBox "无效图片!", 64, "提示信息"
End Sub
Private Sub Command3_Click()
DHK1.Filter = "所有文件(*.*)|*.*"
DHK1.ShowSave
Text3.Text = DHK1.FileName
End Sub
DHK1是CommonDialog控件