BitmapImage数组问题

本文关键字:问题 数组 BitmapImage | 更新日期: 2023-09-27 18:04:06

当我将BitmapImage从单个对象更改为对象数组时,我很难理解为什么会出现错误。

当我创建一个bmpi (BitmapImage)对象时,一切都很好。

public BitmapImage retrieveImageFromDataBase(int ID)
    {
        //Get the byte array from the database using the KEY     
        STOREDIMAGE insertedImage = dc.STOREDIMAGEs.FirstOrDefault(z => z.ID.Equals(ID));
        //convert byte stream into bitmap to display in WPF image box
        BitmapImage bmpi = new BitmapImage();
        bmpi.BeginInit();
        bmpi.StreamSource = new MemoryStream(insertedImage.IMAGES.ToArray());
        bmpi.EndInit();
        return bmpi;
    }

当我将bitmapImage设置为数组时(在本例中,我将其设置为1的数组以显示错误),我在bitmapImage对象的BeginInit()方法中获得错误

类型为'System '的未处理异常。

FHPictureViewer.exe中出现NullReferenceException

附加信息:对象引用未设置为对象的实例。

public BitmapImage[] retrieveImageFromDataBase(int ID)
    {
        //Get the byte array from the database using the KEY     
        STOREDIMAGE insertedImage = dc.STOREDIMAGEs.FirstOrDefault(z => z.ID.Equals(ID));
        //convert byte stream into bitmap to display in WPF image box
        BitmapImage[] bmpi = new BitmapImage[1];
        bmpi[0].BeginInit();
        bmpi[0].StreamSource = new MemoryStream(insertedImage.IMAGES.ToArray());
        bmpi[0].EndInit();
        return bmpi;
    }
我无法理解发生了什么事。看起来应该是一样的

BitmapImage数组问题

您没有初始化数组中的元素,在您的例子中,数组是单个元素。

这个应该可以工作:

// .. 
BitmapImage[] bmpi = new BitmapImage[1];
bmpi[0] = new BitmapImage();
bmpi[0].BeginInit();
//..