怎样使用Spcomm来传输图象?!其中将图象以数据的形式发送出去,怎样将图象转换为数据?又怎样还原?--SOS,高手或者斑竹就我呀!!---小弟已经等了四五天了

  • 主题发起人 主题发起人 cjh_xf
  • 开始时间 开始时间
C

cjh_xf

Unregistered / Unconfirmed
GUEST, unregistred user!
怎样使用Spcomm来传输图象?!其中将图象以数据的形式发送出去,怎样将图象转换为数据?又怎样还原?--SOS,高手或者斑竹就我呀!!---小弟已经等了四五天了,真的很急!!! (100分)<br /> 我现在欲利用Spcomm来传输图象,请问怎样将图象变成数据来传输?!接受是又怎样复原?
有关单色和双色的问题呢?我刚接手这个问题,不太懂!!分不够可以在加!:)
 
如果用2个PC机的化,传送2图像进制文件不就可以了吗?
 
不难,把图片放在流中,然后取流的每一个字节,以Byte类型的数据发送出去,接收端将接收到的每一个字节的Byte类型折数据放入一个流中,并通过相关图片的方法从流中读出。
比如JPEG和BMP都有SaveToStream和LoadFromStream方法。

取流的每一个字节用

var b:Byte;
......

Stream1.Read(b,1);

将读到的字节数据存入流用Stream1.Write(b,1);
 
aizb:
你好!
不好意思,有关流的东西我也不太清楚,还有就是恢复时到底怎样完成我还是不明白,您可否再讲的详细点?
谢谢!
 
这个问题我还没有解决,哪个高手能够给我详细的讲解一下,在加100分!SOS!!
 
unit Unit1;

interface

uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls;

type
TForm1 = class(TForm)
Button1: TButton;
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;

var
Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);
Var MEM:TMemoryStream;
i:Integer;
B:Byte;
begin
MEM:=TMemoryStream.Create;
////////////////////////////////////////////////////////////////////
//在这里发送一个标识字符串出去,告诉接收端开始发送数据.
////////////////////////////////////////////////////////////////////
try
MEM.LoadFromFile('C:/a.jpg');
MEM.Position:=0;
For i:=0 to MEM.Size-1 do
begin
MEM.Read(b,1);
/////////////////////////////////////////
//在这里把字节变量b发送出去相信不用我说,我的电脑没有安装SPCOMM,具体参数也不记得了.
/////////////////////////////////////////
end;
finally
MEM.Free;
end;
////////////////////////////////////////////////////////////////////
//在这里发送一个标识字符串出去,告诉接收端发送数据结束.
////////////////////////////////////////////////////////////////////
end;


///////////////////////////////////////////////////////////////////////////
//以下是接收端的说明
///////////////////////////////////////////////////////////////////////////
Var TMPMEM:TMemoryStream;

////接收端的接收事件中判断如果接收到的是开始发送的标识串,则创建接收数据的流TMPMEM
//如果接收到的字符串是接收结束标识串,则把TMPMEM中的数据调用SaveToFile方法来保存到文件.
//如果接收到的不是上面的两个字符串,则把它们存放在字节变量b中,
//并用TMPMEM.Write(b,1)方法把它们依次写入TMPMEM中.
//这段代码因为需要在事件中写,而我这里没有SPCOMM所以不好写,你试着写一写,如果不行,
//再给我来EMail:aizb@163.com,我装一个spcomm帮你试试!

end.
 
To aizb:
谢谢您的解答!分先给你加上,以后有问题在和偶联系!
 

Similar threads

S
回复
0
查看
3K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
2K
SUNSTONE的Delphi笔记
S
D
回复
0
查看
2K
DelphiTeacher的专栏
D
D
回复
0
查看
2K
DelphiTeacher的专栏
D
D
回复
0
查看
1K
DelphiTeacher的专栏
D
后退
顶部