0

我想在窗口上显示大小不超过 245px * 135px 的许多图像,图像可以有不同的大小,所以,我想调整至少宽度 > 245 或高度 > 135 的图像大小。我尝试这样做:

                BitmapImage bi = new BitmapImage();
                bi.BeginInit();
                bi.UriSource = new Uri(filepath);
                bi.CacheOption = BitmapCacheOption.OnLoad;
                bi.EndInit();

                if (bi.Width > bi.Height)
                {
                    bi.DecodePixelHeight = Convert.ToInt32(bi.Height * (245 / bi.Width));
                    bi.DecodePixelWidth = 245;
                }
                else
                {
                    bi.DecodePixelWidth = Convert.ToInt32(bi.Width * (135 / bi.Height));
                    bi.DecodePixelHeight = 135;
                }

但是 DecodePixelXXX 是 0,因为我应该在 EndIint() 之前做。但是在 EndInit 之前我做不到,因为我还不知道 Width/Height。如何在不以最大性能将整个图像加载到 BitmapImage 的情况下做到这一点?

4

0 回答 0