Bitmap bm = new Bitmap(27000, 27000);显示无效参数 上述语句显示无效参数,这个参数的范围有限制吗,哪位大侠指点一下 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 public Bitmap( int width, int height)就是int的范围 看了一下Bitmap是类,不是struct。不是在堆栈上分配的。不是堆栈溢出。msdn也没明确说明注意事项。不知道。 仔细帮你分析一下。Bitmap的构造函数width,height都是Int32类型。支持长度为0xFFFFFFFF。换算十进制为:2147483647 ~ -2147483647所以你的数据不存在int范围不够的问题。反编译代码看public Bitmap(int width, int height){ this._Init(width, height);}private void _Init(int cx, int cy){ IntPtr ptr; PAL_ERROR ar = GL.Create(cx, cy, out ptr); if (ar >= PAL_ERROR.Success) { base.m_cx = cx; base.m_cy = cy; base.m_how = ptr; } MISC.HandleAr(ar);}[DllImport("AGL", EntryPoint="@80")]public static extern PAL_ERROR Create(int cx, int cy, out IntPtr howNew);并没有任何限制长度的部分,应该出在这个外部调用的地方:Create。进一步的代码无法跟踪。 理论上讲应该是int的范围,但实际是受内存大小限制的,托管的程序如果一次性申请不到几百MB内存,就报这个错误了。。我测试过一个10000*10000的,第一次成功,第二次内存申请不到,就报这个错了,如果中间我手动进行内存回收,第二次就不会报错,这应该是CLR的保护行为,以为是恶意使用内存吧(我猜的。),在C++下应该不存在此问题,只要 内存足,他就会分配,不足,卡死!! 请问LS分存四块,拼到一起怎么拼呢?新建一块画布容纳是不可能了,难道可以用Stream吗? C#不同应用程序之间的文本复制和粘贴 C#怎样判断数据库image字段不能转换为byte[]? DataGridView 合并单元格 重绘 显示混乱 本人初学! 请教个C#中数据库存储图片的问题! c# 如何读取字符串 怎样使当前线程sleep? 如何在C# WinForm程序中实现类似Photoshop中浮动工具箱的功能? [特急] 关于命名空间的问题 ASP.NET中用ODP.net 调用自定义table类型的存储过程。 怎样托动没有边框的Form? vs2008 C#智能设备项目 工具箱没有控件 什么原因? C#如何获取SessionID
int width,
int height
)就是int的范围
仔细帮你分析一下。
Bitmap的构造函数width,height都是Int32类型。支持长度为0xFFFFFFFF。换算十进制为:
2147483647 ~ -2147483647
所以你的数据不存在int范围不够的问题。反编译代码看
public Bitmap(int width, int height)
{
this._Init(width, height);
}private void _Init(int cx, int cy)
{
IntPtr ptr;
PAL_ERROR ar = GL.Create(cx, cy, out ptr);
if (ar >= PAL_ERROR.Success)
{
base.m_cx = cx;
base.m_cy = cy;
base.m_how = ptr;
}
MISC.HandleAr(ar);
}[DllImport("AGL", EntryPoint="@80")]
public static extern PAL_ERROR Create(int cx, int cy, out IntPtr howNew);
并没有任何限制长度的部分,应该出在这个外部调用的地方:Create。
进一步的代码无法跟踪。