【问题标题】:C# resize generated image; bitmap, argument exception [closed]C#调整生成图像的大小;位图,参数异常[关闭]
【发布时间】:2013-09-03 16:14:44
【问题描述】:

我有一个图像对象,我正试图通过位图从图片框中调整其大小。

我有一个桌面图片框的源码,代码如下

Bitmap image = new Bitmap(pictureBox1.Image);
Size newSize = new Size(100,100);

image = new Bitmap( (Image)image, newSize); 
// here I get Parameter not valid, Argument Exception was unhandled

pictureBox1.Image = (Image)image;

为什么会抛出这个异常?

【问题讨论】:

  • 不清楚你在问什么。您提供的代码按预期工作,现在 .NET 4.0 中出现异常。
  • 我使用的是 .NET 4.5;我认为这不是问题,但有哪些可能导致异常的事情?我的运气不如你的好。不知道pictureBox1图片的位置是否有限制或者谁可以同时使用?
  • 只有当图片框没有加载图像时,我才能获得NullReferenceException。我正在 winforms 中的表单加载事件中进行测试。此构造函数的 msdn.microsoft.com/en-us/library/0wh0045z.aspx 文档仅引发 Exception
  • 你能告诉我们异常消息以及抛出的确切位置吗?
  • 我看到我错过了输入newSize的大小,它们应该是100,000而不是100;大小有区别吗?

标签: c# bitmap zooming picturebox argumentexception


【解决方案1】:

首先,我不明白你为什么要创建 2 个位图对象? 为什么不这样:

Bitmap image = (Bitmap)pictureBox1.Image;
Size newSize = new Size(100,100);
Bitmap newImage = new Bitmap((Image)image, newSize);
image.Dispose();

但是我不认为异常是由显示的代码引起的。 可以在屏幕上阅读以上内容:

newSize {宽度 = 128000 高度 = 59500}

你计算过那张图片有多大吗?

大小 x 4 字节格式 = 3.0464^ 10。

我认为您没有足够的内存来分配此图像。

【讨论】:

    猜你喜欢
    • 2011-10-04
    • 1970-01-01
    • 2011-09-03
    • 2010-10-26
    • 2019-08-18
    • 2012-06-06
    • 1970-01-01
    • 2013-04-08
    • 1970-01-01
    相关资源
    最近更新 更多