在数据库表的一个BLOB行字段里,存放了.jpg .bmp .ico等等格式的图片,读出来显示的时候怎么才能知道图片的格式类型? (276分)

  • 主题发起人 主题发起人 SEVN
  • 开始时间 开始时间
用 TGraphic.LoadFromStream 来读,不要用 TBitmap 之类的。
TGraphic 应该自动识别!!!
 
to jsxjd: 人家有可能是文本等格式,不一定是图片的。
我的一个提议是 try TGraphic 的 LoadFromStream,
若产生异常,则判断是否为其他格式,不过我觉得这
也不好,比如文本文件、网页文件和 do
c 文件就几乎
不能区分。
如果楼主坚持用这个办法,一个字:难[:(]
再次祝楼主好运[:)]
 
这个问题还有讨论的价值吗?
如果在BLOB里搞定,我想最好的就是做一个结构
packedrecord
{
streamtype:byte;
streamsize:size;
data:array of byte;
}
然后自己读写这个流,这种方法可以保存任意可以打开的格式。也就是说和文件格式无关
多个字段的方法就不用说了
至于分析文件格式的方法基本上不应该考虑,1,工作量大,2,只能存有限种格式。这种方法
我个人认为没有讨论的价值。如果能作成功,数据库功能就不要说了,他至少还是个比QUICKVIEW
强大的多的文件浏览器。
 
这个问题好有难度阿
这可不是一两个人可以解决的[:D]
看看微软正在开发的操作系统,就知道这个问题的难度了
微软下一个版本的操作系统就想把所有文件类型都统一起来,不过现在好像还没有解决[:D]
 
如果文本和图形混用,应该在其它字段中标识,否则太糟糕了。
 
超级难题
 
一个字:“难”
 
呵呵,在数据库里建立一个字段,存后缀,写入纪录的时候,你不是可以判断文件类型吗,那就好了
把後最写进去,读出来的时候,用临时文件,起个名,试一下,我以前用asp的时候是这样的
但是,delphi我还没试过
 
easy!
用Stream进行保存,前100个字节保存文件信息,后面保存文件内容[:D]
 
不会在流里增加一个标记啊!
 
简单的方法,我一直这么作的:
加一个字段用来存放你保存的文件的扩展名
取出数据时先取文件的扩展名生成一个文件名,再把BLOB中数据保存到这个文件中。
 
1.stlont: 同意
2.青萍:
看看微软正在开发的操作系统,就知道这个问题的难度了
微软[red]下一个[/red]版本的操作系统就想把所有文件类型都统一起来,不过现在好像还没有解决
好象是狠久以前的事,非下一个版本
 
SEVN,
兄弟,您有没有图表分析的例子,给我参考一下。我的用户让我用柱壮图和饼图等
为他们做一些分析。另外,您对ABC分析法熟不熟?物资管理方面的。发一个给我。
谢谢!同时,祝您新年快乐。过了年,您就有高新高高新了。哈。。。
bill.robin@263.net
 
给大家拜年了!顺便放分,小小意思不成敬意。
 

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
后退
顶部