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[] bmpi = new BitmapImage[1];
bmpi[0] = new BitmapImage();
bmpi[0].BeginInit();
//..