c# - SystemArgumentOutOfRangeException C#
问题描述
namespace Cropping_Image
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void button1_Click(object sender, EventArgs e)
{
var img = new Bitmap(Image.FromFile(@"C:\Users\Overnighter\Desktop\test.png"));
int num = 1;
int x1 = 0;
var x2 = 120;
int y1 = 0;
var y2 = 120;
while (x2 != img.Width)
{
var width = x2 - x1+1;
var height = y2 - y1+1;
var result = new Bitmap(width, height);
for (var i = x1; i <= x2; i++)
for (var j = y1; j <= y2; j++)
result.SetPixel(i - x1, j - y2, img.GetPixel(i, j));
result.Save(@"C:\Users\Overnighter\Desktop\file\"+ num +".png");
num++;
x1 += 120;
x2 += 120;
}
}
}
}
错误说明:System.ArgumentOutOfRangeException:“参数必须为正且小于高度。 参数名称:y” 如何解决此错误?
解决方案
在那段代码中:
result.SetPixel(**i - x1**, **j - y2**, img.GetPixel(i, j));
您需要确保i - x1(x 参数)和j - y2(y 参数)是正数,我认为这样的事情应该足以消除异常:
for (var i = x1; i <= x2; i++)
for (var j = y1; j <= y2; j++)
if((i - x1)>=0 && (j - y2)>=0)
result.SetPixel(i - x1, j - y2, img.GetPixel(i, j));
但是,如果您收到该消息,则您可能有问题
推荐阅读
- generics - 制作一个通用的 TableView DataSource 类
- ubuntu - Clang 7 找不到
Ubuntu 18.04 上的标头 - c - 实现到 switch case 语句时如何使函数正确运行
- r - R中的线性模型 - 乘法表达式
- python - 如何在 Pandas 中显示正确的日期世纪?
- c++ - openGL PBO 使用 wglcontext,不创建窗口
- vue.js - Vuetify 置顶工具栏
- javascript - Okta 设置子域 cookie
- mysql - 如何在mysql查询的IF条件中使用As?
- php - 通过 pdftotext 或 pdfparser 从 pdf 中提取印地语 / devnagri 文本时得到相同的垃圾