请问TBitmap中Height和Width两个属性的最大值是多少?(50分)

  • 主题发起人 主题发起人 lujunjie
  • 开始时间 开始时间
L

lujunjie

Unregistered / Unconfirmed
GUEST, unregistred user!
  我在编程中发现如果TBitmap中Height和Width两个属性值过大会产生“参数错误”的
中文出错信息,为了避免发生错误,我想知道这两个属性的最大值到底是多少,我用编程
试错的方式试过几次,但就是没得到确切的值,不知哪位朋友能告诉我?
 
和你系统内存差不多把,你可以看看VCL原代码,你也可以自己做个大图片试试
 
和你的内存有关!
 
因素:
1.TBitmap的PixelFormat属性
2.可用内存容量(包括虚拟内存)
 
我也遇到这个难题,在我的win2000上可以4000*4000的JPG,内存192M;
win98上连3000*3000的BMP都不行
 
经过测试发现,这个应该和你的内存有关系的,Delphi没有限制他的大小,但是你的计算机的系统资源是有限的,而且随你当前运行的程序在变化的,所以这个值不好说
 
这个是与内存与系统设置也有关,理论上是这个大小对于24色的是width*height*3+54<0xFFFFFFFF,但实际上是不行的,支持不了这么大了。
 
和系统的内存其实没什么大关系。因为4/2G内存对图片应该可以算作无限大了
但是因为GDI子系统对GDI资源是有限制的。包括图片大小和系统GDI的句柄数(64K个在WIN98)
WIN98上不了3000*3000的BMP是很正常的 2000/XP就要好一些
 
楼上,我在win98上没有使用虚拟缓存时,上不了3000*3000,但是增大虚拟缓存到1G多时,就可以上到4000*4000了,我的机器配置是256M/40G/C733
 
4000*4000*4也不过64M的空间 试问为何需要1G的虚存?
而且我说的是实际情况 当然具体的限制数量我不记得了 但是比如以前在Win3.2 WIn98下会出现的 系统资源不足大部分都是GDI资源不足 而且这样的代价有必要吗 1G虚存 换得16M的图片
如果你真的需要那么大的图片 比如在PhotoShop里边编辑极大的图片时 我敢保证使用的肯定不是同样大小的位图的方式
 
我这个只是为了测试,我的用户就是要把图像放很大,不用photoshop处理的,我还没有很好的解决方法。
PhotoShop是用把图像再硬盘上生成临时文件来处理的,所以只要硬盘空间(应该是临时目录的盘)足够大,图像就可以足够大,我试过10000*10000的BMP,但是要很长时间
 
后退
顶部