关于显示bmp图像的问题

A09 2007-01-16 05:15:33
Graphics::TBitmap *bmp1;
bmp1 = new Graphics::TBitmap();

bmp1->LoadFromFile(FileName);
//Image1->Picture->Bitmap = bmp1; //这种方法可以显示
//Image1->Picture->Bitmap->Assign(bmp1); //也可以显示
Image1->Canvas->Draw(0,0,bmp1);
就是用Draw的方法运行时出错,显示内存不足。。。的信息,这是怎么回事?

...全文
269 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
pretenders200 2008-04-19
  • 打赏
  • 举报
回复
关注中 。。。。
A09 2007-01-18
  • 打赏
  • 举报
回复
非常感谢Joininthefun的回复,不过我还是有些问题没明白:
1。如果是5000*5000的8bit图像,怎么算出是63M多的?
2。依你的分析,那么用内存bmp,图像的最大的尺寸大概是多少以下就可以呢?
3。Image控件通过流的方式可以自己编程序实现吗?
4。如果方便请你写几句代码试一下,感受一下我说的问题。
Joininthefun 2007-01-18
  • 打赏
  • 举报
回复
再说Image1控件有可能通过流得方式来解决这个问题得
Joininthefun 2007-01-18
  • 打赏
  • 举报
回复
如果是8bit就是63.578287760416666666666666666667MB了,要是对这些一点都没有概念得话你好好得看看一些基础得东西了!
A09 2007-01-18
  • 打赏
  • 举报
回复
可是用Image1->Picture->Bitmap->LoadForemFile();可以显示一幅5000*5000以上的图像,不过是8bit的图像,而内存bmp就不行,不知道为什么?。
还有Image1->Picture->Bitmap->LoadForemFile();和Image1->Picture->LoadForemFile();有什么不同吗?
Joininthefun 2007-01-16
  • 打赏
  • 举报
回复
你知到5000*5000一个BMP(24bit)要占用多少内存吗?190.73486328125MB,你要是再大点呵呵!
A09 2007-01-16
  • 打赏
  • 举报
回复
Image1->Width = bmp2->Width;
Image1->Height = bmp2->Height;
这样显示小图可以了(大概是5000*5000以下),大图还是不行,显示“内存空间不足,无法执行此命令”
shadowstar 2007-01-16
  • 打赏
  • 举报
回复
Image1->Width = Bitmap->Width;
Image1->Height = Bitmap->Height;

这样行不?
ccrun.com 2007-01-16
  • 打赏
  • 举报
回复
还是把具体的出错信息贴出来吧。

604

社区成员

发帖
与我相关
我的任务
社区描述
C++ Builder VCL组件使用和开发
社区管理员
  • VCL组件使用和开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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