求救,高手请进来看看啊

wyy99 2003-04-13 11:47:51
bcb 中用TDBImage控件只能显示数据库中bmp图像格式,怎么样才能显示jepg图像啊

请各位bcb 高手帮忙啊,谢谢了。

想交些编程的朋友,我的QQ:107642122
...全文
103 6 打赏 收藏 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
xpyilin 2003-04-14
  • 打赏
  • 举报
回复
图象数据在ORACLE中保存的类型为BLOB ,我用TDBImage 控件直接来显示,结果出现 Stream read error .问我要显示这些图象应该怎么做?

(来自CKER)
关键是JPG类型的图象数据。这种情况你必须先将jpg的blob数据导入内存流,
然后再使用bcb自带的tjpegimage,得到这个流的内容,最后交给bcb显示:
大致步骤如下:
std::auto_ptr<TMemoryStream> stream (new TMemoryStream);
TBlobField* field = dynamic_cast<TBlobField *>(Query->FieldByName("ImageField"));
if (field)
{
field->SaveToStream(stream.get());
stream->Position = 0;
std::auto_ptr<TJPEGImage> jpeg(new TJPEGImage);
jpeg->LoadFromStream(stream.get());
if (jpeg->Height >0 && jpeg->Width >0)
Image->Picture->Bitmap->Assign(jpeg.get());
else
Image->Picture->Assign(NULL);
}
wyy99 2003-04-14
  • 打赏
  • 举报
回复
tdbimage控件也有tpicture属性,应该也可以显示jpeg图象的,可能是默认bitmap图象,
能不能想办法修改这个默认值啊
望多多指教
谢谢
xc2927 2003-04-14
  • 打赏
  • 举报
回复
学习,
帮你uP
IT-司马青衫 2003-04-13
  • 打赏
  • 举报
回复
Q:如何在C++Builder中存取BLOB字段的数据?
A:如果你使用的是BDE的数据访问方式(不论你使用的是BDE的数据源还是ODBC的数据源)
你可以按照下面的代码来存取BLOB字段的数据:
//读
TBlobField * pField=(TBlobField *)pQuery->FieldByName("Image");
TBlobStream * pmem=new TBlobStream(pField,bmRead);
pmem->Seek(0,soFromBeginning);
Graphics::TBitmap * pBitmap=new Graphics::TBitmap();
pBitmap->LoadFromStream(pmem);
Image1->Picture->Assign(pBitmap);
delete pBitmap;
delete pmem;
//写
pQuery->Edit();
TBlobField * pField=(TBlobField *)pQuery->FieldByName("Image");
TBlobStream * pmem=new TBlobStream(pField,bmWrite);
pmem->Seek(0,soFromBeginning);
Graphics::TBitmap * pBitmap=new Graphics::TBitmap();
pBitmap->Assign(Image1->Picture->Graphic);
pBitmap->SaveToStream(pmem);
delete pBitmap;
delete pmem;
pQuery->Post();
如果你使用的ADO的方式来访问数据库,你可以这样写:
//读
TBlobField * pField=(TBlobField *)pQuery->FieldByName("Image");
TADOBlobStream* pmem=new TADOBlobStream (pField,bmRead);
pmem->Seek(0,soFromBeginning);
Graphics::TBitmap * pBitmap=new Graphics::TBitmap();
pBitmap->LoadFromStream(pmem);
Image1->Picture->Assign(pBitmap);
delete pBitmap;
delete pmem;
//写
pQuery->Edit();
TBlobField * pField=(TBlobField *)pQuery->FieldByName("Image");
TADOBlobStream * pmem=new TADOBlobStream (pField,bmWrite);
pmem->Seek(0,soFromBeginning);
Graphics::TBitmap * pBitmap=new Graphics::TBitmap();
pBitmap->Assign(Image1->Picture->Graphic);
pBitmap->SaveToStream(pmem);
delete pBitmap;
delete pmem;
pQuery->Post();
wyy99 2003-04-13
  • 打赏
  • 举报
回复
能不能用TDBImage控件显示啊

还有http://expert.csdn.net/Expert/TopicView2.asp?id=849224&datebasetype=now进不了啊,要登录的
xpyilin 2003-04-13
  • 打赏
  • 举报
回复
取出来用Image显示,参考:
http://expert.csdn.net/Expert/TopicView2.asp?id=849224&datebasetype=now
内容概要:本文基于Matlab/Simulink平台,对电励磁同步电机在异步牵入、稳态运行及能耗制动三个阶段的全周期动态特性进行建模仿真与系统研究。研究构建了完整的电机数学模型与仿真系统,重点分析了电机从异步启动到同步运行的过渡过程、稳态运行时的电磁与机械性能,以及执行能耗制动时的减速特性与能量耗散机理。通过仿真,揭示了励磁电流、负载转矩与转速在不同工况下的动态响应规律与耦合关系,为电机的控制策略设计与性能优化提供了理论依据和数据支持。; 适合人群:具备电机学、电力电子与电力拖动基础知识的电气工程及相关专业的研究生、科研人员与工程技术人员。; 使用场景及目标:①研究电励磁同步电机的启动特性,解决异步牵入过程不稳定或失败的问题;②分析电机在不同负载下的稳态运行性能,优化运行效率;③设计和验证能耗制动策略,精确控制制动过程的减速时间和能量消耗。; 阅读建议:在学习过程中,应结合电机的基本原理,深入理解仿真模型中各模块(如电机本体、励磁控制、负载模型)的搭建逻辑,并通过调整仿真参数(如励磁电压、负载大小)来观察和分析系统动态响应,以加深对电机全周期运行特性的理解。

1,178

社区成员

发帖
与我相关
我的任务
社区描述
C++ Builder 数据库及相关技术
社区管理员
  • 数据库及相关技术社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧