mathswt
02-04-2005, 11:41
procedure TForm1.Button1.Click(Sender: TObject);
var stream: TStream;
JPEGImage: TJPEGImage;
begin
i:=0;
JPEGImage:= TJPEGImage.Create;
repeat
IdTCPClient1.SendCmd('next');//gởi 1 lệnh đến idTCPServer
stream := TMemoryStream.Create;
try
IdTCPClient1.ReadStream(stream);//đọc vào Stream dữ liệu chứa data của 1 JPgImage gởi từ idTCPServer1
Stream.position:=0;
//--------------------------
JPEGImage.LoadFromStream(Stream);//lưu dữ liệu từ Stream vào JPEGImage
//--------------------------
Image1.Picture.Graphic:=JPEGImage; //load JPEGImage
Image1.Update;
finally
stream.Free;
end;
until check;
end;
Với đoạn code trên, Image1 sẽ hiển thị 1 Picture gởi từ idTCPServer1 nhưng tốc độ load ảnh Image1.Picture.Graphic:=JPEGImage;
với 1 ảnh 800x600 pixels không được nhanh lắm --> các ảnh hiển thị nhìn không được liên tục lằm.
Điều mình muốn hỏi là có cách nào để load ảnh nhanh hơn & ít tốn tài nguyên máy hơn không (có thể không cần sử dụng đối tượng Image1).
var stream: TStream;
JPEGImage: TJPEGImage;
begin
i:=0;
JPEGImage:= TJPEGImage.Create;
repeat
IdTCPClient1.SendCmd('next');//gởi 1 lệnh đến idTCPServer
stream := TMemoryStream.Create;
try
IdTCPClient1.ReadStream(stream);//đọc vào Stream dữ liệu chứa data của 1 JPgImage gởi từ idTCPServer1
Stream.position:=0;
//--------------------------
JPEGImage.LoadFromStream(Stream);//lưu dữ liệu từ Stream vào JPEGImage
//--------------------------
Image1.Picture.Graphic:=JPEGImage; //load JPEGImage
Image1.Update;
finally
stream.Free;
end;
until check;
end;
Với đoạn code trên, Image1 sẽ hiển thị 1 Picture gởi từ idTCPServer1 nhưng tốc độ load ảnh Image1.Picture.Graphic:=JPEGImage;
với 1 ảnh 800x600 pixels không được nhanh lắm --> các ảnh hiển thị nhìn không được liên tục lằm.
Điều mình muốn hỏi là có cách nào để load ảnh nhanh hơn & ít tốn tài nguyên máy hơn không (có thể không cần sử dụng đối tượng Image1).