C# I';“我收到错误消息”;参数无效";关于位图变量和can';我不明白为什么

C# I';“我收到错误消息”;参数无效";关于位图变量和can';我不明白为什么,c#,error-handling,C#,Error Handling,在form1中,我想检查比较是否为真,并在messagebox和我的日志文件中显示它 if (ImagesComparion1.ImageComparison(File1, file2, image_scan_text_rect) == true) { 代码继续 然后在底部,在将文件复制到新位置之前,我想检查它是否在复制文件,同时ImagesComparion1.ImageComparion1.Image

在form1中,我想检查比较是否为真,并在messagebox和我的日志文件中显示它

if (ImagesComparion1.ImageComparison(File1, file2, image_scan_text_rect) == true)
                                             {
代码继续

然后在底部,在将文件复制到新位置之前,我想检查它是否在复制文件,同时ImagesComparion1.ImageComparion1.ImageComparison(文件1、文件2、图像扫描文本)返回true或false

所以我做了:

bool testComparison = ImagesComparion1.ImageComparison(File1, file2, image_scan_text_rect);
                                            MessageBox.Show("testComparison ImageComparison returned " + testComparison);
                                            Logger.Write("testComparison ImageComparison returned " + testComparison);
我用布尔来判断它是真是假

但是当它到达行bool testComparison=ImagesComparion1.imagecomparion1时(File1,file2,image\u scan\u text\u rect); 然后输入类和函数ImagesComparion1.ImageComparison我收到错误消息说“参数无效”

所以我在这行使用了一个断点bool testcomparion1.imagecomparion1(File1,file2,image\u scan\u text\u rect); 并看到其进入图像比较1。图像比较:

public bool ImageComparison(Bitmap Image1, Bitmap Image2, Rectangle Rect)
        {
            Logger.Write("Rect >>>> " + Rect.ToString());

            int x;
            int y;
            bool different = false;
            textbox3 = Rect.ToString();
            //if pictures are not of same size, return that they are different
            if (Image1.Width != Image2.Width || Image1.Height != Image2.Height)
            {
如果(Image1.Width!=Image2.Width | | Image1.Height!=Image2.Height)一行出现错误

这是一个例外:

System.ArgumentException was unhandled by user code
   Message=Parameter is not valid.
   Source=System.Drawing
   StackTrace:
        at System.Drawing.Image.get_Width()
        at WindowsFormsApplication1.ImagesComparison.ImageComparison(Bitmap Image1, Bitmap Image2, Rectangle Rect) in D:\C-Sharp\Download File\Downloading-File-Project-Version-012\Downloading File\ImagesComparison.cs:line 50
        at WindowsFormsApplication1.Form1.Client_DownloadFileCompleted(Object sender, AsyncCompletedEventArgs e) in D:\C-Sharp\Download File\Downloading-File-Project-Version-012\Downloading File\Form1.cs:line 1769
   InnerException:
ImagesComparison.cs中的第50行是错误来源的if(Image1.Width!=Image2.Width | | Image1.Height!=Image2.Height)

Form1.cs中的第1769行是:bool testComparison=ImagesComparion1.imagecomparion1.ImageComparison(File1,file2,image\u scan\u text\r)

我不知道它为什么在这行给我错误。我只想得到一个布尔变量,这样我就能知道它是真是假


谢谢。

您的文件中有一个(或两个)是空的吗?请确保您确实正确创建/加载了位图。请仔细检查路径,并确保您可以在编辑器中打开图像。