C#/ WPF-使用Bitmap / SystemArgumentException错误

詹姆斯·M

本质上,我需要从一个现有的位图(this.Document.Bitmap)创建一个新的位图,然后在同一属性中用新的位图替换该现有的位图。我也希望处置此克隆可能导致的任何额外内存,但是却收到此错误。

using块之外的语句导致引发此异常,我不知道为什么。帮助?

System.Drawing.dll中发生了类型为'System.ArgumentException'的未处理的异常。

            using (Bitmap b = this.Document.Bitmap.Clone(new RectangleF() { Width = (int)this.croppingBorder.Width, Height = (int)this.croppingBorder.Height, X = (int)Canvas.GetLeft(this.croppingBorder), Y = (int)Canvas.GetTop(this.croppingBorder) }, this.Document.Bitmap.PixelFormat))
            {
                this.Document.Bitmap = b;
                BitmapSource bs = System.Windows.Interop.Imaging.CreateBitmapSourceFromHBitmap(b.GetHbitmap(), IntPtr.Zero, Int32Rect.Empty, BitmapSizeOptions.FromEmptyOptions());
                image1.Source = bs;
            }

            canvas1.Width = this.Document.Bitmap.Width;
            canvas1.Height = this.Document.Bitmap.Height;
艾比

这是您正在处理出现的问题的方法:

  • 您正在将原始位图克隆到 b
  • Document.B用克隆覆盖,但忘了处置旧值
  • 那么当您退出代码using块时,b也会Document.B丢弃该位图,因此尝试获取该位图的尺寸会失败。
  • 此外,b.GetHBitmap()复制像素后,应进行处置

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

WPF C#:使用任务

来自分类Dev

使用C#代码创建元素时出现WPF绑定错误

来自分类Dev

使用鼠标WPF C#移动图像

来自分类Dev

使用C#与Wpf Tabitem控件循环?

来自分类Dev

使用WPF和C#的MVVM

来自分类Dev

C#/WPF 过度使用 FileSystemWatcher?

来自分类Dev

使用C#异步处理Bitmap对象

来自分类Dev

使用C#异步处理Bitmap对象

来自分类Dev

C# WPF 应用程序启动错误

来自分类Dev

在C#/ WPF / WinForms中将WMF渲染到BitMap时如何启用抗锯齿?

来自分类Dev

WPF中自动生成的代码显示错误。(C#,WPF,Visual Studio社区2013)

来自分类Dev

WPF中自动生成的代码显示错误。(C#,WPF,Visual Studio社区2013)

来自分类Dev

使用C#在WPF ListView中添加图像

来自分类Dev

在WPF绑定中使用C#表达式

来自分类Dev

使用WPF在C#中静默打印HTML文件

来自分类Dev

C#使用WPF显示JPG图像不起作用

来自分类Dev

使用C#在WPF中更改背景图像

来自分类Dev

使用C#绑定到WPF中的UserControl

来自分类Dev

使用C#或WPF使Windows 10通知静音

来自分类Dev

如何在WPF C#中使用数据绑定?

来自分类Dev

使用SQLite和C#/ WPF创建计算

来自分类Dev

在WPF绑定中使用C#表达式

来自分类Dev

在WPF中使用C#下载非定向文件

来自分类Dev

WPF c#使用线条或替代方法绘制粗曲线

来自分类Dev

使用WPF中的Value从C#设置组合框项目

来自分类Dev

在c#中使用变量进行不同的调用| WPF

来自分类Dev

使用C#绑定到WPF中的UserControl

来自分类Dev

使用WPF C#同时播放多个视频

来自分类Dev

使用BackgroundWorker更新Progressbar + Clipboard.getimage()-WPF C#