如何使用TIdTCPClient向 TidTcpServer发送图片 如题,发送之后在TidTcpServer所在的窗体上的Image1上显示出来 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 img1.Picture.Bitmap.LoadFromFile('c:\test.bmp');orimg1.Picture.Bitmap.LoadFromStream();方式 AFileStream: TFileStream; 用文件流进行传输 一个例子:unit Unit1;interfaceuses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, IdTCPServer, IdBaseComponent, IdComponent, IdTCPConnection, IdTCPClient, ExtCtrls, jpeg;type TForm1 = class(TForm) imgServer: TImage; IdTCPClient1: TIdTCPClient; IdTCPServer1: TIdTCPServer; btnSend: TButton; imgClient: TImage; procedure FormCreate(Sender: TObject); procedure FormClose(Sender: TObject; var Action: TCloseAction); procedure IdTCPServer1Execute(AThread: TIdPeerThread); procedure btnSendClick(Sender: TObject); procedure IdTCPClient1Connected(Sender: TObject); private { Private declarations } public { Public declarations } end;var Form1: TForm1;implementation{$R *.dfm}procedure TForm1.FormCreate(Sender: TObject);begin IdTCPServer1.DefaultPort := 8000; IdTCPServer1.Active := True; //导入Client端要发送的图片 imgClient.Picture.LoadFromFile('f:\a.jpg');end;procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);begin IdTCPServer1.Active := False;end;procedure TForm1.IdTCPServer1Execute(AThread: TIdPeerThread);var AStream: TMemoryStream;begin AStream := TMemoryStream.Create; try //接收来自Client端的Bitmap数据, 直至Client断开连接 AThread.Connection.ReadStream(AStream, -1, True); AStream.Seek(0, soFromBeginning); imgServer.Picture.Bitmap.LoadFromStream(AStream); finally AStream.Free; end;end;procedure TForm1.btnSendClick(Sender: TObject);//连接Serverbegin IdTCPClient1.Host := 'Localhost'; IdTCPClient1.Port := 8000; IdTCPClient1.Connect();end;procedure TForm1.IdTCPClient1Connected(Sender: TObject);//与Server连接成功var ABitmap: TBitmap; AStream: TMemoryStream;begin ABitmap := TBitmap.Create; try //获取Client端图片的Bitmap(不同图片格式均转为Bitmap) ABitmap.Assign(imgClient.Picture.Graphic); AStream := TMemoryStream.Create; try //将Bitmap发送给Server ABitmap.SaveToStream(AStream); AStream.Seek(0, soFromBeginning); IdTCPClient1.WriteStream(AStream); IdTCPClient1.Disconnect; finally AStream.Free; end; finally ABitmap.Free; end;end;end. 你好,请问AStream.Seek(0, soFromBeginning); 是什么意思 郁闷呀!!!COM+客户端提示“拒绝访问”!高手们救救我吧!!!! sql语句的问题,江湖救急! 关于ADOQuery的LoadFromFile方法的一个问题 怎样设置.~pas,.~dfm保存到另外的目录? 初学delphi,求教好教程 两个程序 想做成一个运行 请用最简便方法简化下面语句,谢谢!! 熟悉手机编程的请进:关于FBUS协议 HI这个函数常用吗? 各位,请一定帮忙 讨论一个Dll导出函数问题! 有类似mxOutlookBarPro这样的控件吗?
or
img1.Picture.Bitmap.LoadFromStream();方式
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, IdTCPServer, IdBaseComponent, IdComponent,
IdTCPConnection, IdTCPClient, ExtCtrls, jpeg;type
TForm1 = class(TForm)
imgServer: TImage;
IdTCPClient1: TIdTCPClient;
IdTCPServer1: TIdTCPServer;
btnSend: TButton;
imgClient: TImage;
procedure FormCreate(Sender: TObject);
procedure FormClose(Sender: TObject; var Action: TCloseAction);
procedure IdTCPServer1Execute(AThread: TIdPeerThread);
procedure btnSendClick(Sender: TObject);
procedure IdTCPClient1Connected(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;var
Form1: TForm1;implementation{$R *.dfm}procedure TForm1.FormCreate(Sender: TObject);
begin
IdTCPServer1.DefaultPort := 8000;
IdTCPServer1.Active := True;
//导入Client端要发送的图片
imgClient.Picture.LoadFromFile('f:\a.jpg');
end;procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);
begin
IdTCPServer1.Active := False;
end;procedure TForm1.IdTCPServer1Execute(AThread: TIdPeerThread);
var
AStream: TMemoryStream;
begin
AStream := TMemoryStream.Create;
try
//接收来自Client端的Bitmap数据, 直至Client断开连接
AThread.Connection.ReadStream(AStream, -1, True);
AStream.Seek(0, soFromBeginning);
imgServer.Picture.Bitmap.LoadFromStream(AStream);
finally
AStream.Free;
end;
end;procedure TForm1.btnSendClick(Sender: TObject);
//连接Server
begin
IdTCPClient1.Host := 'Localhost';
IdTCPClient1.Port := 8000;
IdTCPClient1.Connect();
end;procedure TForm1.IdTCPClient1Connected(Sender: TObject);
//与Server连接成功
var
ABitmap: TBitmap;
AStream: TMemoryStream;
begin
ABitmap := TBitmap.Create;
try
//获取Client端图片的Bitmap(不同图片格式均转为Bitmap)
ABitmap.Assign(imgClient.Picture.Graphic);
AStream := TMemoryStream.Create;
try
//将Bitmap发送给Server
ABitmap.SaveToStream(AStream);
AStream.Seek(0, soFromBeginning);
IdTCPClient1.WriteStream(AStream);
IdTCPClient1.Disconnect;
finally
AStream.Free;
end;
finally
ABitmap.Free;
end;
end;end.