我有一个 BitmapImage,我想获取 PixelHeight 和 PixelWidth 属性,以便确定它是横向还是纵向布局。在确定其布局后,我需要设置图像的高度或宽度,以使其适合我的图像查看器窗口,而不会扭曲高度:宽度比。但是,看来我必须调用 BeginInit() 才能对我的图像做任何事情。我必须调用 EndInit() 来获取 PixelHeight 或 PixelWidth 属性,并且我不能在同一个 BitmapImage 对象上多次调用 BeginInit()。那么我怎么可能设置我的图像,获取高度和宽度,确定它的方向,然后调整图像的大小呢?
这是我一直在使用的代码块:
image.BeginInit();
Uri imagePath = new Uri(path + "\\" + die.Die.ImageID + "_" + blueTape + "_BF.BMP");
image.UriSource = imagePath;
//image.EndInit();
imageHeight = image.PixelHeight;
imageWidth = image.PixelWidth;
//image.BeginInit();
// If the image is taller than it is wide, limit the height of the image
// i.e. DML87s and all non-rotated AOI devices
if (imageHeight > imageWidth)
{
image.DecodePixelHeight = 357;
}
else
{
image.DecodePixelWidth = 475;
}
image.EndInit();
当我运行它时,我得到了这个运行时异常:
无效操作异常:
BitmapImage 初始化未完成。调用 EndInit 方法完成初始化。
有人知道如何处理这个问题吗?