GDI+ 中发生一般性错误。请高手指教。从数据库读文件出来发生。

yyunffu 2007-12-18 02:55:59
我把大图片分割之后上传至服务器,之后再从数据库读出分割文件,合并后显示,但出现以上问题,向各位高手请教!多多谢过!
代码如下:
array<Byte>^ buffer = nullptr;
SqlCommand^ cmd = gcnew SqlCommand(L"select imagedata from imageTable where ID between 14 and 17 order by imageName", conn);
conn->Open();
SqlDataReader^ dr = cmd->ExecuteReader();

int iIndex = 0;
while (dr->Read())
{
buffer = (array<Byte>^)dr[L"imageData"];
iIndex += buffer->Length;
}
dr->Close();

array<Byte>^ allBuffer = gcnew array<Byte>(iIndex);
iIndex = 0;
dr = cmd->ExecuteReader();

while (dr->Read())
{
buffer = (array<Byte>^)dr[L"imageData"];
Array::Copy(buffer, 0, allBuffer, iIndex, buffer->Length);
iIndex += buffer->Length;
}
dr->Close();
conn->Close();
MemoryStream^ ms = gcnew MemoryStream(allBuffer);
Image^ myImage=Image::FromStream(ms); /////////在这一步出现“GDI+ 中发生一般性错误。",分割文件大小,前三个为20K,最后一个为1.4K
//
this->pb->Image=myImage;
this->pb->Refresh();

问题如上,请各位高手指点,多多谢过!
...全文
59 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
yyunffu 2007-12-18
  • 打赏
  • 举报
回复
我在上传之前把比较大的图片进行分割,之后再合并,这都是在EVC4下完成,完全没有问题。上传至服务器数据库,就会出现合并文件问题。上传之前需要把数据做Base64编码,Soap包需要的。呵呵!多谢大家指点!
yyunffu 2007-12-18
  • 打赏
  • 举报
回复
我的情况如此,我用PDA(Windows mobile5 EVC4), 把图片上传至webservice,这当中用到了文件分割。我把上传的数据去除之后在合并,发现数据文件大小与原始完全一致,但图片只能显示分割第一部分,也就是图片只显示一部分。既然数据没有问题,那我就认为可能VCNET里面书据和EVC下有所不同,当把存入数据库中的数据取出来时可能在数据当中出现了某些变化。呵呵!我自己的一点看法,错误的话请多指教!
真相重于对错 2007-12-18
  • 打赏
  • 举报
回复
出现错误的可能性太多,别人又没有环境,怎么帮你

建议自己调试,例如你合并后的buffer与原图像字节数组是否一致


7,540

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 VC.NET
社区管理员
  • VC.NET社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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