用midas创建的多层应用系统,为何显示图片会出错? 确认数据库中存的是BMP文件吗? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 错误提示告訴你,這Bmp不合法,說白了,存放在Blob字段中的數據不是一個Bmp圖象。 如果jpg文件不可以吗?如果要显示jpg文件该如何做?有没有办法可以显示很多种图形格式? 用 OleVariant来传递jpg这个字段,在客户端接收并处理 你的图片在数据库中是以何种方式存储的,如果是ole(acess中就是这样),他会在原来文件的数据前加上一段控制用的数据,把它去掉就可以在image中显示了 你的图片在数据库中是以何种方式存储的,如果是ole(acess中就是这样),他会在原来文件的数据前加上一段控制用的数据(我记得好像有70多个字节),把它去掉就可以在image中显示了 jpg不能用DBImage来看,得自己写程序。 如何我用的数据库是SQL Server,不同格式的图片显示是否会出现问题?在access中如何将控制用的数据去掉,在程序中如何做? 我用jpg和bmp都出现问题,都没法用! 我认为这是多层系统的问题,是这样的:当你把图片写入后,applyupdates.再把图片读出,修改该条记录的其它字段值,多层系统就会也这个图片变的不全法(图片变了样,数据有问题)这时dbimage就出错了:候错误提示为:异常类EInvalidGraphics,bitmap is not invailid 提示你,clientdataset的属性设置以下就可以了呀,因为他的默认属性是不将图片和备注字段读到客户端的呀,知道了吧,具体设置那一个就不用我说了吧!!!!!!!!! 大概是poAllowFetchBlob这个选项吧!其实应该不选,就应该自动显示! 是不是都需要用流操作,将其读到内存中,然后再赋予某个图形控件的bitmap属性,然后再显示? dbimage 不支持jpg格式,用image控件把,使用很简单的。 下面是我写的一段程序,在三层下显示jpg,如果图像格式正确并且不为空,就显示,否则显示默认图像。void __fastcall TfrmPhoto::AsignPicture(TBlobField* field){ //TODO: Add your source code here if(field==NULL || field->IsNull==true) { Image1->Visible = true; Image2->Visible = false; return ; } TMemoryStream* stream = new TMemoryStream(); //TBlobStream* stream =new TBlobStream(field,bmRead); TJPEGImage* jpeg =new TJPEGImage(); try{ stream->Position = 0; field->SaveToStream(stream); stream->Position=0; jpeg->LoadFromStream(stream); Image2->Picture->Assign (jpeg); Image1->Visible = false; Image2->Visible = true; delete stream; delete jpeg; } catch(...){ Image1->Visible = true; Image2->Visible = false; delete stream; delete jpeg; }} 如何把在SQL server数据库的图片字段的文件名提取出来? 关于U盘病毒的研究 twwDBGrid的小问题,结果能接受我就给分啊, 关于mysqldump的问题? 如何把Socket中的出错提示掉不要显示。 关于字符串问题 如何调用运行中未创建的窗体? 有没有能拖出成浮动小窗口的TToolbar 控件? 关于Delphi6中日期的一个问题 请大家帮帮忙,给解决这个问题:http://www.csdn.net/expert/topic/432/432737.shtm 如何得到Excel中有多少行數據? 硬件加密狗编程原理是什么。 如何插入一个按钮到ie工具栏,连接我的程序,如netant、金山词霸
如果要显示jpg文件该如何做?
有没有办法可以显示很多种图形格式?
在access中如何将控制用的数据去掉,在程序中如何做?
是这样的:
当你把图片写入后,applyupdates.
再把图片读出,修改该条记录的其它字段值,多层系统就会也这个图片变的不全法(图片变了样,数据有问题)
这时dbimage就出错了:
候错误提示为:异常类EInvalidGraphics,bitmap is not invailid
{
//TODO: Add your source code here
if(field==NULL || field->IsNull==true) {
Image1->Visible = true;
Image2->Visible = false;
return ;
} TMemoryStream* stream = new TMemoryStream();
//TBlobStream* stream =new TBlobStream(field,bmRead);
TJPEGImage* jpeg =new TJPEGImage(); try{
stream->Position = 0;
field->SaveToStream(stream);
stream->Position=0;
jpeg->LoadFromStream(stream); Image2->Picture->Assign (jpeg);
Image1->Visible = false;
Image2->Visible = true;
delete stream;
delete jpeg;
}
catch(...){
Image1->Visible = true;
Image2->Visible = false;
delete stream;
delete jpeg;
}
}