gpt4 book ai didi

c# - GdiPlus 溢出异常

转载 作者:行者123 更新时间:2023-11-30 16:36:23 31 4
gpt4 key购买 nike

我最近在 GDI+ 中通过第 3 方工具遇到了 OverflowException,这给我带来了一些问题。我正在尝试找出造成这种情况的原因,然后决定是否有解决问题的方法。

错误发生在 SafeNativeMethods.Gdip.GdipFillPath() 中,返回错误代码 11,等于 GpStatus.ValueOverflow。我不知道这意味着什么,也不知道是什么原因造成的。后果相当严重,因为我有大面积的屏幕无法绘制。

此错误的堆栈跟踪是:

System.OverflowException:溢出错误。 在 System.Drawing.Graphics.CheckErrorStatus(Int32 状态) 在System.Drawing.Graphics.FillPath(Brush笔刷,GraphicsPath路径) 在 Northwoods.Go.GoShape.DrawPath(Graphics g, GoView view, Pen pen, Brush 笔刷, GraphicsPath 路径) 在 Northwoods.Go.GoRoundedRectangle.Paint(图形 g,GoView View ) 在 Northwoods.Go.GoLayer.Paint(图形 g,GoView View ,RectangleF clipRect) 在 Northwoods.Go.GoView.PaintObjects( bool 文档、 bool View 、图形 g、RectangleF clipRect) 在 Northwoods.Go.GoView.PaintView(图形 g,RectangleF clipRect) 在 Northwoods.Go.GoView.onPaintCanvas(PaintEventArgs 事件) 在 Northwoods.Go.GoView.OnPaint(PaintEventArgs 事件) 在 System.Windows.Forms.Control.PaintWithErrorHandling(PaintEventArgs e,Int16 层, bool disposeEventArgs) 在 System.Windows.Forms.Control.WmPaint(Message& m) 在 System.Windows.Forms.Control.WndProc(Message& m) 在 System.Windows.Forms.Control.ControlNativeWindow.OnMessage(Message& m) 在 System.Windows.Forms.Control.ControlNativeWindow.WndProc(Message& m) 在 System.Windows.Forms.NativeWindow.Callback(IntPtr hWnd,Int32 msg,IntPtr wparam,IntPtr lparam)

这里显然使用了 2 个参数。我无法控制的 GraphicsPath 和 Brush。画笔由静态方法返回,只是为了确保处理它不是问题,我尝试更改 Brush 属性以返回如下所示的克隆。然而,这似乎没有任何影响。

public Brush 
{
get {
return MappingLinearGradient(this.Bounds).Clone();
}
}

最佳答案

IIRC,Graphics 对象的最大平面面积为 (1 << 24) - 1 => 1670 万像素。

我不确定该区域本身是否有限制,但我会调查一下。

关于c# - GdiPlus 溢出异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/893069/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com