使用C#保存位图数组以分隔文件

时间:2016-12-16 18:52:37

标签: c# arrays bitmap save typeinitializeexception

我坚持保存System.Drawing.Bitmap类型的数组,每个位图都是单独的文件。 我有一个数组"调查"。这个数组存储了几个double类型的列表。 对于每个List,我想创建一个位图,然后将其保存为bmp文件。 raport[i].Save(Path.Combine(myfilepath, nets[i] + ".bmp"));返回 TypeInitializationException - 我不知道原因。 作品nets[i]是一个带有预期文件名的字典(int,string)。

public void save_results()
    {
        System.Drawing.Bitmap[] raport = new System.Drawing.Bitmap[survey.Length];

        for (int i = 0; i < survey.Length; i++)
        {
            raport[i] = new System.Drawing.Bitmap(survey[i].Count, 1000);

            for (int x = 0; x < survey[i].Count; x++)
                for (int y = 0; y < 1000; y++)
                    raport[i].SetPixel(x, y, Color.FromArgb(255, 255, 255));

            for (int x = 0; x < survey[i].Count; x++)
                raport[i].SetPixel(x, (int)(1000 - Math.Floor(survey[i][x] * 1000) >= 1000 ? 999 : 1000 - Math.Floor(survey[i][x] * 1000)), Color.FromArgb(0, 0, 0));

    raport[i].Save(Path.Combine(myfilepath, nets[i] + ".bmp"));
        }
    }

1 个答案:

答案 0 :(得分:0)

最后,问题与变量&#34; myfilepath&#34;有关。 变量被编译了#39;从几个文件路径 - 所有这些字符串应该是static

    public static string mydoc= Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments);
    public static string myfilepath_p = Path.Combine(mydoc, "Demeter");
    public static string myfilepath= Path.Combine(myfilepath_p, "regresja_liniowa");

最初,只有&#39; final&#39;引用代码中使用的变量是static,导致错误的原因。

其余的代码工作正常。