无法使用C#读取位图文件

本文关键字:读取 位图 文件 | 更新日期: 2023-09-27 18:27:38

我正在尝试读取一个位图文件,其中包含以下代码:

public void open(object o, EventArgs e)
    {
        fileOpenen.Filter = "Pictures (.BMP/.JPG/.GIF/.PNG)|*.bmp;*.jpg;*.gif;*.png";
        if (fileOpenen.ShowDialog() == DialogResult.OK)
        {
          Bitmap open = new Bitmap(fileOpenen.FileName);
            schets.bitmap = open;
            this.nieuw(o, e);
    }

它应该将位图加载到"schets"中,它由以下代码组成:

class Schets
{
    public Bitmap bitmap; // private naar public
    public Schets()
    {
        bitmap = new Bitmap(1, 1);
    }
    public Graphics BitmapGraphics
    {
        get { return Graphics.FromImage(bitmap); }
    }
    public void VeranderAfmeting(Size sz)
    {
        if (sz.Width > bitmap.Size.Width || sz.Height > bitmap.Size.Height)
        {
            Bitmap nieuw = new Bitmap( Math.Max(sz.Width,  bitmap.Size.Width)
                                     , Math.Max(sz.Height, bitmap.Size.Height)
                                     );
            Graphics gr = Graphics.FromImage(nieuw);
            gr.FillRectangle(Brushes.White, 0, 0, sz.Width, sz.Height);
            gr.DrawImage(bitmap, 0, 0);
            bitmap = nieuw;
        }
    }
    public void Teken(Graphics gr)
    {
        gr.DrawImage(bitmap, 0, 0);
    }
}

我可以从硬盘驱动器中选择一个.bmp文件,但当我尝试加载它时,会出现以下错误:An unhandled exception of type 'System.NullReferenceException' occurred in Schets.exe

无法使用C#读取位图文件

从strack跟踪中,您可以准确地看到"System.NullReferenceException"出现的位置。然后它指向您尝试访问尚未初始化对象的行。只需初始化对象,它就会工作。