不知道流中图片的类型,如何用流读取? ( 积分: 100 )

  • 主题发起人 主题发起人 memeng
  • 开始时间 开始时间
M

memeng

Unregistered / Unconfirmed
GUEST, unregistred user!
不能保存到硬盘再读取,该如何做?
TPicture没有Loadfromstream比较麻烦。。。
 
类型判断通过读流的头部信息来获得:
var
FStream:TStream;
Buffer:Word;

FStream:=TFileStream.Create(FileName,fmOpenRead or fmShareDenyWrite);
FStream.ReadBuffer(Buffer,2);
FStream.Position:=0;
if Buffer=$4D42 then
begin
//BMP
end
else if Buffer=$D8FF then
begin
//JPEG
end
else if Buffer=$4947 then
begin
//GIF
end
else if Buffer=$050A then
begin
//PCX
end
else if Buffer=$5089 then
begin
//PNG
end
else if Buffer=$4238 then
begin
//PSD
end
else if Buffer=$A659 then
begin
//RAS
end
else if Buffer=$DA01 then
begin
//SGI
end
else if Buffer=$4949 then
begin
//TIFF
end
else
 
自由灵活,所见即所得的表格组件,开发环境下设计表格内容,独有的单据和Excel两种界面风格,可设计出各种类型的界面,配合强劲的打印功能,轻松解决自由界面和报表难题。其显著特性包括:

提供了单据, Excel ,Grid 三种界面风格。
开发环境下设计表格,所见即所得。
支持数据库和分组。
既可以作为普通表格使用,又可以作为数据感知组件使用,或者两者同时使用。
独特的双数据源连接,轻松实现单记录布局和主从表连接。
除了通过数据集本身的方法来访问数据库的记录之外,还可以通过读取单元格的Text属性来实现,这样就不必在数据集间来回移动记录。
支持unicode文本。
提供了列排序,移动行列,隐藏行列,增删行列等功能。
提供了 Excel 样式的过滤功能。
方便的查找对话框。
提供了单元格合并,单元格命名,只读单元格,锁定单元格等功能。
提供了列对象,用于控制整列单元格。
支持虚表,公式(包括自定义公式), RTF 格式文本,Ole 对象和图表。
提供了按钮、下拉框、复选框、单选钮、日期、超链接、数值类等多种输入方式。
支持整形、正整形、负整形、浮点数、正浮点数、负浮点数等输入方式。可自动处理千分位,可设置小数位数。
九种文本和图形对齐方式,还可通过单元格边距控制输出位置。
导入/导出 Excel 文件,相互粘贴数据。
提供了自动调整行高,垂直文本输出功能。
可以设置单元格掩码,附有掩码编辑器。
设置单元格的 PasswordChar。
单元格内容字符数限制。
单元格支持图形,并且可以拉伸,层叠图形。
可以显示/隐藏单元格的边框、可以设置边框的类型、大小、颜色。
支持单元格斜线。
3D 外观的单元格。
设置单元格的光标和提示。
支持自绘画单元格。
设置固定行和列。
保存到文件和流。
提供了复制/粘贴区域功能。
VCL 版本可以插入其它可视 VCL 组件。

http://www.anylib.com
 
to 那年黄梅花开:
你说的也不是完全正确吧,我看我机器上图片的文件头,和你列的不太一样。
另外我用的是GraphicEx,有什么办法可以把流数据直接读到TPicture中呢?
 
那我就感到纳闷了,我一直都这么用啊;
下面的我也试了,都是行的。
procedure TForm1.Button1Click(Sender: TObject);
var
FStream:TStream;
Buffer:Word;
begin
if OpenDialog1.Execute then
begin
FStream:=TFileStream.Create(OpenDialog1.FileName,fmOpenRead or fmShareDenyWrite);
FStream.ReadBuffer(Buffer,2);
FStream.Position:=0;
if Buffer=$4D42 then
begin
Edit1.Text:= 'bmp';
end
else if Buffer=$D8FF then
begin
Edit1.Text:= 'jpeg';
end;
FStream.Free;
end;
end;

tpicture没有封装loadfromstream的方法,所以你得先判断流文件的类型,然后再调用相应的派生类来读流中数据啊
uses jpeg;
var
aPicture: TPicture;
aJPEGImage: TJPEGImage;
begin
aPicture.Bitmap.LoadFromStream();
aJPEGImage.LoadFromStream();
 
如果你想花最少的钱学习流行的计算机技术,本人低价提供
计算机专业高清晰 视 频 教 程,所有教程由业内名家讲解,物超所值,
所有光盘4元/张,特快专递全国三天内到货.
联系方式:手 机:1 3 5 76145612(手机联系佳) Q Q:108410943
E-mail:ncncldjjg@126.com
1、Oracle9iOCP(Oracle认证专家DBA)视频教程(23CD)
2、SQL语言、数据挖掘、SQLServer2000视频教程(6CD)
3、计算机网络原理视频教程(4CD)
4、计算机实用组网技术视频教程(3CD)
5、MCSE(微软认证系统工程师)认证视频教程(11CD)
6、windows2003即学即会视频教程(6CD)
7、J2EE Web程序开发定向班/Java就业班视频教程
(java基础jsp核心技术UML设计)(13CD)
8、J2EE基础高级案例分析视频教程(9CD)
9、马士兵J2SE入门与精通(含坦克大战、BBS实例)视频教程(6CD)
10、java语言深入详解视频教程(12CD)
11、java技术从入门到精通视频教程(21CD)
12、javascript全接触视频教程(13CD)
13、各类网站源程序(9CD)
14、unix原理视频教程(3CD)
15、Linux软件开发工程师(C语言)视频教程(4CD)
16、Linux配置、管理、优化实战工程师视频教程(8CD)
17、Linux内核编程视频教程(11CD)
18、C语言详解视频教程(2CD)
19、VC++6.0(MFC)开发技术术详解视频教程(6CD)
20、ASP.NET中文视频教程(3CD)
21、洪恩C#入门多媒体教程(1CD)
22、XML技术视频教程(2CD)
23、操作系统视频教程(3CD)
24、网络技术基础视频教程(2CD)
25、数据结构视频教程(5CD)
26、清华大学计算机专业多媒体教程(数据结构、汇编、编译原理等)(13CD)
27、大学数学[离散数学线性代数概率与数理统计微积分]视频教程(22CD)
28、LearnKey Asp.Net (老外用英语讲课)(13CD)
29、LearnKey Asp.Net Webservice(老外用英语讲课)(5CD)
30、AppDev Asp.Net2.0 UsingC# (老外用英语讲课)(1CD)
31、APPDev .Net Framework(老外用英语讲课)(2CD)
32、林清安pro/e2001(野火版)视频教程(18CD)
33、深圳大学3D设计视频教程(4CD)
34、3DMAX建模视频教程(老外用英语讲课)(6CD)
35、3DMAX纹理与贴图材质灯光视频教程(老外用英语讲课)(5CD)
36、3DMAX格式500个常用模型库(4CD)
37、lightscape基础入门视频教程(2CD)
38、聚光制造(lightscape3.2入门与精通视频教程)(4CD)
39、coreldraw12中文版入门与精通swf格式视频教程(2CD)
 
接受答案了.
 
后退
顶部