各位老大你们好:
请教一个问题,我把多个图片通过文检流合并成了一个文件,文件的格式是|图片大小|图片数据|图片大小|图片数据|....我想把我定义的这个文件中的图片取出来然后显示到程序的TImage组建中,用文件流先读出数据然后写到硬盘,再显示,这个我已经会了,我现在想问各位老大一个问题,我怎么才可以读出我定义的文件中的一个图片,不写到硬盘,直接显示到程序的TImage组件中,在网上看到了一片文章,但是用他提供的函数根本就不能实现: 文章名字是:[谈Delphi编程中“流”的应用--陈经韬]附上他的函数:
Function Cjt_BmpLoad(ImgBmp:TImage;SourceFile:String):Boolean;
var
Source:TFileStream;
MyFileSize:integer;
begin
Source:=TFileStream.Create(SourceFile,fmOpenRead or fmShareDenyNone);
try
try
Source.Seek(-sizeof(MyFileSize),soFromEnd);
Source.ReadBuffer(MyFileSize,sizeof(MyFileSize));//读出资源
Source.Seek(-MyFileSize,soFromEnd);//定位到资源开始位置
ImgBmp.Picture.Bitmap.LoadFromStream(Source);
finally
Source.Free;
end;
except
Result:=False;
Exit;
end;
Result:=True;
end;
------------------------------------------------------------
Source.Seek()这里我定义指针到我图片数据的开始位置Source.ReadBuffer()这里我读取的大小是我图像数据的大小
我菜鸟一个,看上面代码完全可以实现我想要的功能啊,怎么就不行啊,返回的值总是:False请各位老大指点迷津....
请教一个问题,我把多个图片通过文检流合并成了一个文件,文件的格式是|图片大小|图片数据|图片大小|图片数据|....我想把我定义的这个文件中的图片取出来然后显示到程序的TImage组建中,用文件流先读出数据然后写到硬盘,再显示,这个我已经会了,我现在想问各位老大一个问题,我怎么才可以读出我定义的文件中的一个图片,不写到硬盘,直接显示到程序的TImage组件中,在网上看到了一片文章,但是用他提供的函数根本就不能实现: 文章名字是:[谈Delphi编程中“流”的应用--陈经韬]附上他的函数:
Function Cjt_BmpLoad(ImgBmp:TImage;SourceFile:String):Boolean;
var
Source:TFileStream;
MyFileSize:integer;
begin
Source:=TFileStream.Create(SourceFile,fmOpenRead or fmShareDenyNone);
try
try
Source.Seek(-sizeof(MyFileSize),soFromEnd);
Source.ReadBuffer(MyFileSize,sizeof(MyFileSize));//读出资源
Source.Seek(-MyFileSize,soFromEnd);//定位到资源开始位置
ImgBmp.Picture.Bitmap.LoadFromStream(Source);
finally
Source.Free;
end;
except
Result:=False;
Exit;
end;
Result:=True;
end;
------------------------------------------------------------
Source.Seek()这里我定义指针到我图片数据的开始位置Source.ReadBuffer()这里我读取的大小是我图像数据的大小
我菜鸟一个,看上面代码完全可以实现我想要的功能啊,怎么就不行啊,返回的值总是:False请各位老大指点迷津....
解决方案 »
- report machine 三级主从报表
- delphi基础问题
- 网页编码
- 如何控制格式化一个字符串使得它的长度达到指定的参数长度
- serversocket问题
- 为什么我的delphi6在win2000 professional上无法安装?
- 怎样把快速报表的Close按钮的标题改为中文?
- 要求做一个窗口,拖放任意类型的文件到此窗口上时,自动调用相应的程序打开此程序,例如:excel文件或word文件,flash文件等!
- 窗口拖动的问题!
- 我有一個txt文件,文件第一行,和最后一行,都有 xxxxxxxxxxxxxxxx(年月日時分秒),我想將其修改成當前的時間﹐怎么辦﹐請教了?
- 如何检测WebBrowser网页的变化?
- 通过地址的值,如何得到地址存储的值?
Source.ReadBuffer(MyFileSize,sizeof(MyFileSize));//读出资源
从上面两行代码分析,应该文件的末尾存的是大小,那么就要看这个“大小”是否包含表示大小的这个数据本身,如果是的话,那么下面的代码是正确的,如果不是的话,那么下面的-MyFileSize应该改为-MyFileSize-sizeof(MyFileSize)
Source.Seek(-MyFileSize,soFromEnd);//定位到资源开始位置