how to modify the timage control so as to fit a very large bitmap?

tide 2000-01-02 07:18:00
我用Timage 开发一个绘图程序。但当 Image->Width=6000;Image->Height=6000;时
程序出现“参数错误”。我知道这是受到内存限制。于是我把Image->Pixelformat设为16色,问题不见了。但我需要真彩色。看来只有修改Timage 了。
...全文
263 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
tide 2000-03-25
  • 打赏
  • 举报
回复
这个程序需要从数据库中取得大量数据然后绘制曲线(打印出来有5米性长),曲线绘制完成后还要允许用户在上面标注文字、绘图、添加图片。 原来的做法是在timage 上完成的,但效果很不理想。您有在form上处理大位图的经验,很希望在这方面得到您的帮助。
horn 2000-01-26
  • 打赏
  • 举报
回复
在处理大的图形时,如果可能可直接对文件操作而不必把它完全调入内存。

TImage控件不适于处理大的图形,也不适于高性能的图形显示。一个可以处理大图象的软件将不是很容易用Delphi现有控件如TImage能实现的。Delphi1.0甚至不能处理大于64K的图象。

如果一定要用TImage,不妨到\Source\vcl目录中找到TImage的源代码,然后杨长避短。不管怎样,TImage控件的免协议特性降低了它的性能与速度。

还有一种办法,用TBitmap与TPaintBox结合,自已编写图象的滚动操作,如果你的内存足够,这种方法应当可行。或者TStream与TPaintBox结合,自已负责读写特定格式的图像。

我自已往往只使用TBitmap和Form1.Canvas就能处理大图象。

firewing 2000-01-26
  • 打赏
  • 举报
回复
把Timage控件放在一个SCROLLBOX里面试一下
ahfei 2000-01-26
  • 打赏
  • 举报
回复
用TStream读出来,draw到Canvas上,是较好的方法
sky__horse 2000-01-26
  • 打赏
  • 举报
回复
PAINTBOX可能也会出问题,我曾用它只做LineTo之类的处理,一旦尺寸超大,画面就乱了
Venne 2000-01-11
  • 打赏
  • 举报
回复
使用PAINTBOX,自己控制绘画过程,大图只画其中一部分。你再试试?
kxy 2000-01-02
  • 打赏
  • 举报
回复
LMD控件包支持大图象,不过我没有试过。
如果你想要,可以去delphi5.4u.ru 上下载,要用netscape和代理服务器。

5,379

社区成员

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

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